juststeveking/laravel-key-factory

A simple package to generate Eloquent Model Keys

1.1.0 2022-11-15 10:17 UTC

This package is auto-updated.

Last update: 2024-12-15 15:03:34 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

Laravel Key Factory is a simple package to generate Eloquent Model Keys for your models easily. This is something I do quite often, instead of using UUID's which can be quite unfriendly to look at, I use Model keys which are unique strings generated for each model.

Installation

You can install the package via composer:

composer require juststeveking/laravel-key-factory

You can publish and run the migrations with:

You can publish the config file with:

php artisan vendor:publish --provider="JustSteveKing\KeyFactory\KeyFactoryServiceProvider" --tag="key-factory-config"

This is the contents of the published config file:

return [
    'key' => [
        'length' => 20,
    ]
];

Usage

This is a very simple to use package. There are two available methods to generate the key:

Using the Key Factory

$key = \JustSteveKing\KeyFactory\KeyFactory::generate(
    prefix: 'test', // what you want to prefix your keys with.
    length: 20, // optional - the default of 20 is set in the config.
);

Using the Str helper

$key = \Illuminate\Support\Str::key(
    prefix: 'test', // what you want to prefix your keys with.
    length: 20, // optional - the default of 20 is set in the config.
);

Eloquent Integration

There is an eloquent model trait available to use called HasKey which will:

When you are creating an eloquent model, the trait will be booted. It will get the first 3 characters of the Model name, force them to lowercase and append a "_" and use this as the prefix for the Key Factory

An example:

  • User Model: use_12345678909876543212
  • Project Model: pro_12345678909876543212

Currently this isn't a configured option as it is easy to override or implement yourself.

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.