A PHP implementation of collision-resistant ids. You can read more about CUIDs from the official project website.
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.
<?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
<?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
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