ludo237 / nanoid-php
NanoId implementation for PHP
Requires
- php: ^8.3
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.56
- pestphp/pest: ^2.34
- phpstan/phpstan: ^1.10
This package is auto-updated.
Last update: 2025-04-08 12:35:35 UTC
README
A simple, ready to use, PHP 8 ready library for generating NanoIDs.
What is a NanoID?
NanoID is a short, easy to select with double click, low chance of collision, easy to generate and human readable unique identifier.
Install
Using composer
composer require ludo237/nanoid-php
Usage
The library is straightforward to use. Instantiate a new Client
object
and call the generate
method to get a new random ID. Simple as that.
use Ludo237\Nanoid\Client;
$client = new Client();
$id = $client->generate();
Customizations
Client accepts a custom alphabet, size and core if you want to change the underlying algorithm.
In order to use a custom core you need to implement the CoreInterface
interface.
The library comes with two cores, SecureCore
and UnsecureCore
:
SecureCore
is the default and uses therandom_bytes
function to generate random bytes, which is more secure.UnsecureCore
uses themt_rand
function to generate random bytes, which is less secure but faster.
Feel free to implement your own core and pass it to the client.
use Ludo237\Nanoid\Client;
$client = new Client();
$client
->alphabet('1234567890')
->size(10)
->core(new MyCustomCore());
$id = $client->generate();
Examples
You can find more examples in the examples folder.
Change log
Please see CHANGELOG for more information on what has changed recently.
Testing
composer test
Contributing
Please see CONTRIBUTING and CODE_OF_CONDUCT for details.
Notice
If you have any issues, just feel free and open it in this repository
Credits
License
The MIT License (MIT). Please see License File for more information.