bulldog / id
ID 生成器
v1.5.0
2018-12-19 21:48 UTC
Requires
- php: ^7.1
Requires (Dev)
- phpunit/phpunit: ^7.5@dev
- symfony/var-dumper: ^4.2@dev
This package is auto-updated.
Last update: 2024-09-12 08:43:51 UTC
README
一个用于生成 ID 的库。
对象 ID
如果您的对象 ID 足够长,则可以在多个系统中生成,无需担心冲突。使用基于时间的桶为我们每个新 ID 提供局部性。
ID 的前半部分是桶。桶是两个 Unix 时间戳之间的差值。第一个时间戳是当前年份的开始,第二个时间戳是调用方法的时间。这比只使用当前时间戳更有效率。这样我们会有更多的桶。
ID 的后半部分使用 random_bytes
函数。然后使用 base 64 安全编码。我们移除了任何对 URL 不安全的字符。
用法
以下示例生成了 5,000 个对象 ID。
<?php require 'vendor/autoload.php'; use Bulldog\id\ObjectId; $id = new ObjectId; for($i=0; $i<5000; $i++) { var_dump($id->get(12)); }
增量 ID
您可以使用多个 ID 创建一个 base64 编码的增量 ID。您可能想使用用户的 ID 和关系数据库中的另一个主键来创建一个唯一的增量 ID。
用法
以下示例将每次生成相同的字符串。
<?php require 'vendor/autoload.php'; use Bulldog\id\IncrementalId; $id = new IncrementalId; var_dump($id->create(4, 'dog', 9)); // Output: NAZG9nOQ var_dump($id->get(4)); // Output: NAZG