DEV Community

Cover image for Small Id Generator
sebk69
sebk69

Posted on

Small Id Generator

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
Enter fullscreen mode Exit fullscreen mode

Get it

composer require small/id
Enter fullscreen mode Exit fullscreen mode

git : https://git.small-project.dev/lib/small-id
packagist : https://packagist.org/packages/small/id

Top comments (0)