DownloadUID

All-in-one unique ID toolkit for PHP.
Features
-
UUID (`v1`, `v3`, `v4`, `v5`, `v6`, `v7`, `v8`)
-
ULID (monotonic and random modes)
-
Snowflake, Sonyflake, TBSL
-
NanoID, CUID2, KSUID, XID
-
Opaque and deterministic IDs
-
Value objects and comparator utilities
-
Binary conversion and base encoders (`16`, `32`, `36`, `58`, `62`)
-
Pluggable sequence providers (filesystem, memory, PSR-16 cache, callback)
Requirements
Installation
composer require infocyph/uid
Global helper functions are autoloaded via src/functions.php.
Quick Usage
<?php
use Infocyph\UID\Id;
use Infocyph\UID\CUID2;
use Infocyph\UID\NanoID;
$uuid = Id::uuid(); // default UUID strategy (v7)
$ulid = Id::ulid();
$snowflake = Id::snowflake();
$sonyflake = Id::sonyflake();
$tbsl = Id::tbsl();
$nanoid = NanoID::generate(21);
$cuid2 = CUID2::generate(24);
<?php
use Infocyph\UID\UUID;
$uuid = UUID::v7();
$ok = UUID::isValid($uuid);
$parsed = UUID::parse($uuid);
$bytes = UUID::toBytes($uuid);
$roundTrip = UUID::fromBytes($bytes);
$base58 = UUID::toBase($uuid, 58);
$decoded = UUID::fromBase($base58, 58);
The shared byte-level encoder is available as
Infocyph\UID\Support\BaseEncoder for bases 16, 32, 36, 58, and 62.
References
-
UUID: https://datatracker.ietf.org/doc/html/rfc9562
-
ULID: https://github.com/ulid/spec
-
Snowflake: https://github.com/twitter-archive/snowflake/tree/snowflake-2010
-
Sonyflake: https://github.com/sony/sonyflake
-
NanoID: https://github.com/ai/nanoid
-
CUID2: https://github.com/paralleldrive/cuid2
-
TBSL note: https://github.com/infocyph/UID/blob/main/TBSL.md
|