Search by

fiberphp / uuid

fiberphp

🔢 FiberPHP UUID 组件 —— RFC 9562 规范,支持 v4 随机和 v7 时间排序生成,零依赖纯库。

dev-master 2026-09-09 05:55 UTC

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