switon / id
Named ID generators for UUIDs, ULIDs, Snowflake, and compact public IDs for Switon Framework
v1.0.0
2026-06-06 13:43 UTC
Requires
- php: >=8.3
- switon/command: ^1.0
- switon/core: ^1.0
- switon/redis: ^1.0
- switon/sync: ^1.0
Requires (Dev)
- phpstan/extension-installer: ^1.4
- phpstan/phpstan: ^2.0
- switon/testing: ^1.0
Suggests
- ext-gmp: Required for KSUID and ShortUuid support.
README
Switon's ID generation package for interface-first services that need selectable strategies, sortable identifiers, and compact public IDs.
Highlights
- Pluggable ID generation:
IdGeneratorInterfacecan be swapped as needed. - Named ID strategies: common strategies are ready to use through the service provider.
- Distributed Snowflake support: sequence allocation can be coordinated through Redis.
- Time-ordered identifiers:
Uuid7,Ulid, andKsuidproduce sortable string IDs. - Compact formats:
NanoId,Cuid2,ShortUuid, andMongoIdcover shorter public IDs.
Installation
composer require switon/id
Quick Start
use Switon\Core\Attribute\Autowired; use Switon\Id\IdGeneratorInterface; class OrderService { #[Autowired] protected IdGeneratorInterface $idGenerator; public function createOrder(): string { return (string) $this->idGenerator->next(); } }
Docs: https://docs.switon.dev/latest/id
License
MIT.