ghostwriter / uuid
使用Unix时间戳为PHP生成版本7 UUIDs
1.0.1
2024-07-21 21:08 UTC
Requires
- php: >=8.3
- ext-mbstring: *
Requires (Dev)
- ghostwriter/coding-standard: dev-main
This package is auto-updated.
Last update: 2024-08-31 15:10:30 UTC
README
使用Unix时间戳为PHP生成版本7 UUIDs
安装
您可以通过composer安装此包
composer require ghostwriter/uuid
如果您觉得这个仓库有用,请给它加星标 ⭐️
您也可以给它加星标 (🌟) 以便以后更容易找到。
用法
使用给定的UUID字符串初始化一个新的Uuid实例
use Ghostwriter\Uuid\Uuid; $uuid = new Uuid('0000669c-8deb-7fe7-b9cc-692b216999a3'); echo $uuid->toString(); // 0000669c-8deb-7fe7-b9cc-692b216999a3
生成一个新的UUID
echo Uuid::new()->toString(); // 0000669c-8f99-711e-9ed0-72a35c3b6fb3
使用特定的时间戳生成一个新的UUID
echo Uuid::new(new DateTimeImmutable())->toString(); // 0000669c-8faf-7e4b-9ed9-45c4c2b27f07
根据时间戳比较UUIDs
$uuid1 = Uuid::new(new DateTimeImmutable('-1 year')); $uuid2 = Uuid::new(new DateTimeImmutable('-1 month')); $uuid3 = Uuid::new(new DateTimeImmutable('-1 week')); $uuid4 = Uuid::new(new DateTimeImmutable('-1 day')); assert(0 === $uuid1->compare($uuid1)); assert(-1 === $uuid1->compare($uuid2)); assert(-1 === $uuid1->compare($uuid3)); assert(-1 === $uuid1->compare($uuid4)); assert(1 === $uuid2->compare($uuid1)); assert(0 === $uuid2->compare($uuid2)); assert(-1 === $uuid2->compare($uuid3)); assert(-1 === $uuid2->compare($uuid4)); assert(1 === $uuid3->compare($uuid1)); assert(1 === $uuid3->compare($uuid2)); assert(0 === $uuid3->compare($uuid3)); assert(-1 === $uuid3->compare($uuid4)); assert(1 === $uuid4->compare($uuid1)); assert(1 === $uuid4->compare($uuid2)); assert(1 === $uuid4->compare($uuid3)); assert(0 === $uuid4->compare($uuid4)); /** @var array{0:UuidInterface,1:UuidInterface,2:UuidInterface,3:UuidInterface} $uuids */ $uuids = [$uuid3, $uuid1, $uuid4, $uuid2]; usort($uuids, static fn (UuidInterface $left, UuidInterface $right): int => $left->compare($right)); assert($uuid1->toString() === $uuids[0]->toString()); assert($uuid2->toString() === $uuids[1]->toString()); assert($uuid3->toString() === $uuids[2]->toString()); assert($uuid4->toString() === $uuids[3]->toString());
鸣谢
变更日志
请查看CHANGELOG.md 了解最近的变化。
许可证
请查看LICENSE 了解此项目的许可证信息。
安全
请查看SECURITY.md 了解安全披露过程。