guifelix / ulid
一个用于生成全局唯一有序标识符(Universally Unique Lexicographically Sortable Identifiers)的 PHP 包
v0.1.0
2022-04-04 00:17 UTC
Requires
- php: ^8.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- infection/infection: ^0.26.6
- pestphp/pest: ^1.20
- pestphp/pest-plugin-parallel: ^1.0
- pestphp/pest-plugin-watch: 1.x-dev
- phpbench/phpbench: ^1.0.0-alpha3
- spatie/pest-plugin-test-time: ^1.0
- spatie/ray: ^1.28
This package is not auto-updated.
Last update: 2024-10-01 12:17:49 UTC
README
PHP 库,用于在您的应用程序中使用 ULID。
- 与 UUID 兼容的 128 位
- 每毫秒 1.21e+24 个唯一的 ULID
- 字典序可排序!
- 作为 26 个字符的字符串进行规范编码,而不是 36 个字符的 UUID
- 使用 Crockford 的 base32,以提高效率和可读性(每字符 5 位)
- 不区分大小写
- 没有特殊字符(URL 安全)
- 单调排序顺序(正确检测和处理相同的毫秒)
安装
您可以通过 composer 安装此包
composer require guifelix/php-ulid
用法
生成
use Guifelix\Ulid; $ulid = Ulid::generate(); // Accept boolean as a parameter for lowercase; echo (string) $ulid; //0001EH8YAEP8CXP4AMWCHHDBHJ echo $ulid->getTime(); //0001EH8YAE echo $ulid->getRandomness(); //P8CXP4AMWCHHDBHJ echo $ulid->isLowercase(); //false echo $ulid->toTimestamp(); //1561622862
从时间戳生成
use Guifelix\Ulid; $ulid = Ulid::fromTimestamp(1561622862); // Accept boolean as a second parameter for lowercase; echo (string) $ulid; //0001EH8YAEP8CXP4AMWCHHDBHJ
从字符串生成(不增加随机性)
use Guifelix\Ulid; $ulid = Ulid::fromString('0001EH8YAEP8CXP4AMWCHHDBHJ'); // Accept boolean as a second parameter for lowercase; echo (string) $ulid; //0001EH8YAEP8CXP4AMWCHHDBHJ
验证
use Guifelix\Ulid; Ulid::validate('8ZZZZZZZZZP8CXP4AMWCHHDBHI'); // Case insensitve /** * validate Length, Crockford Characters and Time * Throws * - InvalidUlidLengthException * - InvalidUlidCharException * - InvalidUlidTimestampException <- Max timestamp is 7ZZZZZZZZZ (281474976710655) or until the year 10889 AD :) * - InvalidUlidException * /
测试
composer test
变更日志
请参阅 CHANGELOG 了解最近的变化信息。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全漏洞
请审查 我们的安全策略 了解如何报告安全漏洞。
鸣谢
- Robin van der Vleuten - 我在这个包中使用了他的大部分代码
- Guilherme Maciel
- 所有贡献者
许可
MIT 许可证 (MIT)。请参阅 许可文件 了解更多信息。