guifelix/ulid

一个用于生成全局唯一有序标识符(Universally Unique Lexicographically Sortable Identifiers)的 PHP 包

资助包维护!
guifelix

v0.1.0 2022-04-04 00:17 UTC

README

Latest Version on Packagist Tests Total Downloads

PHP 库,用于在您的应用程序中使用 ULID。

安装

您可以通过 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 了解详细信息。

安全漏洞

请审查 我们的安全策略 了解如何报告安全漏洞。

鸣谢

许可

MIT 许可证 (MIT)。请参阅 许可文件 了解更多信息。