PHP Classes

How to Use a PHP UUID Library to Generate Unique Identifiers using Package UID (UUID, ULID, Snowflake, Sonyflake, Nano, CUID, KSUID, XID, TBSL): Generate, parse, validate unique identifiers

Recommend this page to a friend!
  Info   Documentation   View files Files   Install with Composer Install with Composer   Download Download   Reputation   Support forum   Blog    
Last Updated Ratings Unique User Downloads Download Rankings
2026-05-04 (6 days ago) RSS 2.0 feedNot yet rated by the usersTotal: Not yet counted Not yet ranked
Version License PHP version Categories
uid-generator 4.1MIT/X Consortium ...8.2Tools, Text processing, Libraries, PHP 8
Description 

Author

This package can generate, parse, and validate unique identifiers.

It provides several classes that can perform operations with unique identifiers encoded using different algorithms.

Currently it supports the unique identifier generator algorithms:
UUID (RFC 4122 + Unofficial/Draft), ULID, Snowflake ID, Sonyflake ID, NanoID, CUID2, KSUID, XID, TBSL.

The classes can also:

- Parse and validate a unique identifier strings

- Encode and decode unique identifiers using hexadecimal characters

- Convert unique identifiers to numbers in different bases: 16, 32, 36, 58, 62.

Picture of A. B. M. Mahmudul Hasan
  Performance   Level  
Name: A. B. M. Mahmudul Hasan <contact>
Classes: 4 packages by
Country: Bangladesh Bangladesh
Innovation award
Innovation award
Nominee: 2x

Instructions

Documentation

UID

Security & Standards Documentation Packagist Downloads License: MIT Packagist Version Packagist PHP Version GitHub Code Size

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

  • PHP `>=8.2`
  • `ext-bcmath`

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

  Files folder image Files (96)  
File Role Description
Files folder image.github (2 files, 1 directory)
Files folder imagebenchmarks (2 files)
Files folder imagedocs (21 files, 1 directory)
Files folder imagesrc (15 files, 7 directories)
Files folder imagetests (9 files)
Accessible without login Plain text file .editorconfig Data Auxiliary data
Accessible without login Plain text file .readthedocs.yaml Data Auxiliary data
Accessible without login Plain text file captainhook.json Data Auxiliary data
Accessible without login Plain text file CODE_OF_CONDUCT.md Data Auxiliary data
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file LICENSE Lic. License text
Accessible without login Plain text file README.md Doc. Documentation
Accessible without login Plain text file SECURITY.md Data Auxiliary data
Accessible without login Plain text file TBSL.md Data Auxiliary data

  Files folder image Files (96)  /  .github  
File Role Description
Files folder imageworkflows (1 file)
  Accessible without login Plain text file CODEOWNERS Data Auxiliary data
  Accessible without login Plain text file dependabot.yml Data Auxiliary data

  Files folder image Files (96)  /  .github  /  workflows  
File Role Description
  Accessible without login Plain text file security-standards.yml Data Auxiliary data

  Files folder image Files (96)  /  benchmarks  
File Role Description
  Plain text file HotspotBench.php Class Class source
  Plain text file SequenceProviderBench.php Class Class source

  Files folder image Files (96)  /  docs  
File Role Description
Files folder image_static (1 file)
  Accessible without login Plain text file base-encoding.rst Data Auxiliary data
  Accessible without login Plain text file compatibility.rst Data Auxiliary data
  Accessible without login Plain text file conf.py Data Auxiliary data
  Accessible without login Plain text file db-storage.rst Data Auxiliary data
  Accessible without login Plain text file exceptions.rst Data Auxiliary data
  Accessible without login Plain text file framework-integration.rst Data Auxiliary data
  Accessible without login Plain text file helpers.rst Data Auxiliary data
  Accessible without login Plain text file id-facade.rst Example Example script
  Accessible without login Plain text file index.rst Data Auxiliary data
  Accessible without login Plain text file installation.rst Data Auxiliary data
  Accessible without login Plain text file quickstart.rst Example Example script
  Plain text file random-ids.rst Class Class source
  Accessible without login Plain text file references.rst Data Auxiliary data
  Accessible without login Plain text file requirements.txt Doc. Documentation
  Accessible without login Plain text file sequence-providers.rst Example Example script
  Accessible without login Plain text file snowflake.rst Example Example script
  Accessible without login Plain text file sonyflake.rst Example Example script
  Accessible without login Plain text file tbsl.rst Example Example script
  Accessible without login Plain text file ulid.rst Data Auxiliary data
  Accessible without login Plain text file uuid.rst Example Example script
  Accessible without login Plain text file value-objects.rst Example Example script

  Files folder image Files (96)  /  docs  /  _static  
File Role Description
  Accessible without login Plain text file theme.css Data Auxiliary data

  Files folder image Files (96)  /  src  
File Role Description
Files folder imageConfiguration (4 files)
Files folder imageContracts (2 files)
Files folder imageEnums (3 files)
Files folder imageExceptions (6 files)
Files folder imageSequence (5 files)
Files folder imageSupport (9 files)
Files folder imageValue (7 files)
  Plain text file CUID2.php Class Class source
  Plain text file DbStorage.php Class Class source
  Plain text file DeterministicId.php Class Class source
  Accessible without login Plain text file functions.php Example Example script
  Plain text file Id.php Class Class source
  Plain text file IdComparator.php Class Class source
  Plain text file KSUID.php Class Class source
  Plain text file NanoID.php Class Class source
  Plain text file OpaqueId.php Class Class source
  Plain text file Snowflake.php Class Class source
  Plain text file Sonyflake.php Class Class source
  Plain text file TBSL.php Class Class source
  Plain text file ULID.php Class Class source
  Plain text file UUID.php Class Class source
  Plain text file XID.php Class Class source

  Files folder image Files (96)  /  src  /  Configuration  
File Role Description
  Plain text file ResolvesCustomEpoch.php Class Class source
  Plain text file SnowflakeConfig.php Class Class source
  Plain text file SonyflakeConfig.php Class Class source
  Plain text file TBSLConfig.php Class Class source

  Files folder image Files (96)  /  src  /  Contracts  
File Role Description
  Plain text file IdAlgorithmInterface.php Class Class source
  Plain text file IdValueInterface.php Class Class source

  Files folder image Files (96)  /  src  /  Enums  
File Role Description
  Accessible without login Plain text file ClockBackwardPolicy.php Aux. Configuration script
  Accessible without login Plain text file IdOutputType.php Aux. Configuration script
  Accessible without login Plain text file UlidGenerationMode.php Aux. Configuration script

  Files folder image Files (96)  /  src  /  Exceptions  
File Role Description
  Plain text file FileLockException.php Class Class source
  Plain text file SnowflakeException.php Class Class source
  Plain text file SonyflakeException.php Class Class source
  Plain text file UIDException.php Class Class source
  Plain text file ULIDException.php Class Class source
  Plain text file UUIDException.php Class Class source

  Files folder image Files (96)  /  src  /  Sequence  
File Role Description
  Plain text file CallbackSequenceProvider.php Class Class source
  Plain text file FilesystemSequenceProvider.php Class Class source
  Plain text file InMemorySequenceProvider.php Class Class source
  Plain text file PsrSimpleCacheSequenceProvider.php Class Class source
  Plain text file SequenceProviderInterface.php Class Class source

  Files folder image Files (96)  /  src  /  Support  
File Role Description
  Plain text file BaseEncoder.php Class Class source
  Plain text file BinaryUnpack.php Class Class source
  Plain text file DecimalBytes.php Class Class source
  Plain text file EpochGuard.php Class Class source
  Plain text file FileLock.php Class Class source
  Plain text file GetSequence.php Class Class source
  Plain text file NumericIdCodec.php Class Class source
  Plain text file OutputFormatter.php Class Class source
  Plain text file UnsignedDecimal.php Class Class source

  Files folder image Files (96)  /  src  /  Value  
File Role Description
  Plain text file AbstractParsedIdValue.php Class Class source
  Plain text file ComparableIdValue.php Class Class source
  Plain text file SnowflakeValue.php Class Class source
  Plain text file SonyflakeValue.php Class Class source
  Plain text file TbslValue.php Class Class source
  Plain text file UlidValue.php Class Class source
  Plain text file UuidValue.php Class Class source

  Files folder image Files (96)  /  tests  
File Role Description
  Plain text file AdditionalIdsTest.php Class Class source
  Plain text file IdFactoryTest.php Class Class source
  Plain text file SequenceProviderTest.php Class Class source
  Accessible without login Plain text file ShortIdTest.php Example Example script
  Plain text file SnowflakeTest.php Class Class source
  Plain text file SonyflakeTest.php Class Class source
  Plain text file TBSLTest.php Class Class source
  Plain text file ULIDTest.php Class Class source
  Plain text file UUIDTest.php Class Class source

The PHP Classes site has supported package installation using the Composer tool since 2013, as you may verify by reading this instructions page.
Install with Composer Install with Composer
 Version Control Unique User Downloads  
 100%
Total:0
This week:0