tiny-blocks / ksuid
K-可排序唯一标识符。
1.1.3
2023-06-25 16:42 UTC
Requires
- php: ^8.1||^8.2
- tiny-blocks/encoder: ^1.2
Requires (Dev)
- infection/infection: ^0.26
- phpmd/phpmd: ^2.13
- phpunit/phpunit: ^9.6
- squizlabs/php_codesniffer: ^3.7
Suggests
- ext-gmp: Enables faster math with arbitrary-precision integers using GMP.
README
概览
Ksuid代表K-可排序唯一标识符。这是一种生成全球唯一ID的方法,这些ID部分按时间顺序可排序。
安装
composer require tiny-blocks/ksuid
如何使用
该库通过Ksuid
类提供了一个具体的实现。
创建Ksuid
使用random
方法,可以从时间戳(当前Unix时间戳 - EPOCH)和有效载荷(密码学安全的伪随机字节)创建一个新类型的Ksuid
实例。
$ksuid = Ksuid::random(); $ksuid->getValue(); # 2QzPUGEaAKHhVcQYrqQodbiZat1 $ksuid->getPayload(); # 464932c1194da98e752145d72b8f0aab $ksuid->getUnixTime(); # 1686353450 $ksuid->getTimestamp(); # 286353450
您还可以选择其他工厂模型。
Ksuid::from(payload: hex2bin('9850EEEC191BF4FF26F99315CE43B0C8'), timestamp: 286235327); Ksuid::fromPayload(value: '0o5Fs0EELR0fUjHjbCnEtdUwQe3'); Ksuid::fromTimestamp(value: 286235327);
检查Ksuid
您可以使用inspectFrom
方法检查用于创建Ksuid
的组件。
$ksuid = Ksuid::inspectFrom(ksuid: '2QzPUGEaAKHhVcQYrqQodbiZat1'); # Array # ( # [time] => 2023-06-09 20:30:50 -0300 -03 # [payload] => 464932c1194da98e752145d72b8f0aab # [timestamp] => 286353450 # )
许可证
Ksuid遵循MIT许可证。
贡献
请遵循贡献指南以贡献到项目。