visus / cuid2
A PHP library for generating collision-resistant ids (CUIDs).
Installs: 803 903
Dependents: 4
Suggesters: 0
Security: 0
Stars: 39
Watchers: 3
Forks: 1
Open Issues: 1
pkg:composer/visus/cuid2
Requires
- php: ^8.1
- markrogoyski/math-php: ^2.11
- symfony/polyfill-php83: ^1.32
Requires (Dev)
- ext-ctype: *
- captainhook/captainhook-phar: ^5.23
- captainhook/hook-installer: ^1.0
- ergebnis/composer-normalize: ^2.29
- phpstan/phpstan: ^1.9
- phpunit/phpunit: ^10.5
- ramsey/conventional-commits: ^1.5
- squizlabs/php_codesniffer: ^4.0
- vimeo/psalm: ^6.0
Suggests
- ext-gmp: Allows for quicker Base16 to Base36 conversion
README
A PHP implementation of collision-resistant ids. You can read more about CUIDs from the official project website.
Getting Started
You can install visus/cuid2 as a composer package:
composer require visus/cuid2
Tip
Consider installing/enabling the PHP extension GMP. If this is not an option then markrogoyski/math-php will be used as a fallback.
Examples
Instance Based
<?php require_once 'vendor/autoload.php'; // new (default length of 24) $cuid = new Visus\Cuid2\Cuid2(); // implicit casting echo $cuid; // apr5hhh4ox45krsg9gycbs9k // explicit casting echo $cuid->toString(); // apr5hhh4ox45krsg9gycbs9k // new (with custom length) $cuid = new Visus\Cuid2\Cuid2(10); echo $cuid; // pekw02xwsd
Static Based
<?php require_once 'vendor/autoload.php'; // new (default length of 24) $cuid = Visus\Cuid2\Cuid2::generate(); // implicit casting echo $cuid; // apr5hhh4ox45krsg9gycbs9k // explicit casting echo $cuid->toString(); // apr5hhh4ox45krsg9gycbs9k // new (with custom length) $cuid = Visus\Cuid2\Cuid2::generate(10); echo $cuid; // pekw02xwsd
Validation
Note
This method does not guarantee that the value is actually a CUID2, only that it follows the format.
<?php require_once 'vendor/autoload.php'; Cuid2::isValid('apr5hhh4ox45krsg9gycbs9k'); // true Cuid2::isValid('invalid-cuid'); // false Cuid2::isValid('pekw02xwsd', expectedLength: 10); // true