I wanted a php library with no composer dependencies to generate unique id, and I finally wrote this : small/id
A tiny PHP library that provides a uniform interface to generate a variety of unique identifiers:
UUID (v1/2/3/4/5/6/7), ULID, KSUID, Snowflake, ObjectId, and NanoID — via a simple IdInterface
and a factory.
use Small\Id\IdFactory;
use Small\Id\Enum\IdType;
$factory = new IdFactory();
$uuid7 = $factory->getId(IdType::uuid_v7)->generate(); // e.g. "018fb27a-a2b1-7c3d-8e9f-1a2b3c4d5e6f"
$ulid = $factory->getId(IdType::ulid)->generate(); // e.g. "01J234ABCD3EFG4567HJKMNPRT"
$ksuid = $factory->getId(IdType::ksuid)->generate(); // base62 string (~27 chars)
$snow = $factory->getId(IdType::snowflacke)->generate();// decimal string (64‑bit composed)
$oid = $factory->getId(IdType::objectid)->generate(); // 24‑hex Mongo‑like
$nano = $factory->getId(IdType::nanoid)->generate(); // 21 chars URL‑safe
Get it
composer require small/id
git : https://git.small-project.dev/lib/small-id
packagist : https://packagist.org/packages/small/id
Top comments (0)