Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Laravel Human Readable Keys

Latest Version on Packagist Build Status on Github Actions

Have you ever wanted to generate Stripe-like IDs for your Eloquent models? This package does exactly that!

Installation

You can install the package via composer:

composer require tailflow/laravel-human-readable-keys

Usage

  1. Change type of the id (or whatever your primary key column is) to string in the migration
Schema::create('users', function (Blueprint $table) {
    $table->string('id');
    
    ...
});
  1. Add HasHumanReadableKey trait to a model
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Tailflow\HumanReadableKeys\Concerns\HasHumanReadableKey;

class User extends Model
{
    use HasHumanReadableKey;

   ...
}
  1. (Optional) Customize key prefix and length

By default, a singular form of the table name is used as prefix for generated keys. You can customize that by overriding the getKeyPrefix method on the model:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Tailflow\HumanReadableKeys\Concerns\HasHumanReadableKey;

class User extends Model
{
    use HasHumanReadableKey;

   ...
   
    public function getKeyPrefix(): string
    {
        return 'account';
    }
}

Generated keys contain a unique hash that is 24 characters in length. To customize hash length, override the getKeyLength method:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Tailflow\HumanReadableKeys\Concerns\HasHumanReadableKey;

class User extends Model
{
    use HasHumanReadableKey;

   ...
   
    public function getKeyLength(): string
    {
        return 16;
    }
}

License

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

About

Generate Stripe-like IDs for Eloquent models

Resources

Stars

7 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages