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.
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,
]
];
This is a very simple to use package. There are two available methods to generate the key:
$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.
);
$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.
);
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.
composer test
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
Please review our security policy on how to report security vulnerabilities.
The MIT License (MIT). Please see License File for more information.