fiberphp / uuid
🔢 FiberPHP UUID 组件 —— RFC 9562 规范,支持 v4 随机和 v7 时间排序生成,零依赖纯库。
dev-master
2026-09-09 05:55 UTC
Requires
- php: >=8.3
Requires (Dev)
- phpunit/phpunit: ^11.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-09 05:55:40 UTC
README
RFC 9562 规范的 UUID 生成器,零框架依赖的纯库实现(仅依赖 PHP 与 ext-json)。支持 v4 随机与 v7 时间排序两种版本,v7
可作为数据库主键保持趋势递增。
环境要求
- PHP >= 8.3
安装
composer require fiberphp/uuid
快速开始
use FiberPHPExt\Uuid\Uuid;
// v4:全随机 UUID(122 位随机熵)
$id = Uuid::v4();
// 550e8400-e29b-41d4-a716-446655440000
// v7:时间戳有序 UUID(48 位毫秒时间戳 + 74 位随机)
$id = Uuid::v7();
// 01914582-2dfe-7abc-9def-0123456789ab
// 批量生成
$ids = Uuid::generate(100, 'v7');
// 根据版本字符串生成
$id = Uuid::create('v7');
解析
// 解析 v7 的时间戳(毫秒),非 v7 返回 null
$ts = Uuid::parseTimestamp('01914582-2dfe-7abc-9def-0123456789ab');
// 获取版本号,无效返回 null
$version = Uuid::parseVersion($id);
特性
| 能力 | 说明 |
|---|---|
| v4 随机 | 122 位随机熵,random_bytes 生成,无碰撞担忧 |
| v7 时序 | 48 位毫秒时间戳前缀,索引友好、趋势递增,适合做数据库主键 |
| 批量生成 | generate(count, version) 一次产出多条 |
| 版本解析 | parseVersion / parseTimestamp 还原版本与时间戳 |
| 纯库 | 无框架依赖,命名空间 FiberPHPExt\Uuid,可独立嵌入任意项目 |
License
MIT License (c) 2026 庞斌,详见 LICENSE。