hidehalo / nanoid-php
PHP中的nanoid副本
1.1.13
2022-08-04 12:07 UTC
Requires
- php: ~5.6|~7.0|~8.0
- paragonie/random_compat: >=2.0
Requires (Dev)
- phpunit/phpunit: >=5.6
- squizlabs/php_codesniffer: ^2.3
README
A tiny (179 bytes), secure URL-friendly unique string ID generator for JavaScript
安全。 它使用加密强随机API,并保证符号分布的适当性。
小巧。 只有179字节(压缩后)。无依赖。它使用Size Limit来控制大小。
紧凑。 它使用比UUID(A-Za-z0-9_-)更多的符号,并且仅用21个符号就有与36个符号相同数量的唯一选项。
感谢出色的 ai 和他的 nanoid,这个包是PHP中的副本!如果你喜欢nanoid并想在PHP中使用它,试试我吧 :D
安装
通过Composer
composer require hidehalo/nanoid-php
使用方法
正常
主要模块使用URL友好的符号(A-Za-z0-9_-)并返回一个21个字符的ID(与UUID v4相同的碰撞概率)。
use Hidehalo\Nanoid\Client; use Hidehalo\Nanoid\GeneratorInterface; $client = new Client(); # default random generator echo $client->generateId($size = 21); # more safer random generator echo $client->generateId($size = 21, $mode = Client::MODE_DYNAMIC);
自定义字母表或长度
echo $client->formattedId($alphabet = '0123456789abcdefg', $size = 21);
字母表必须包含256个符号或更少。否则,生成器将不安全。
自定义随机字节生成器
# PS: anonymous class is new feature when PHP_VERSION >= 7.0 echo $client->formattedId($alphabet = '0123456789abcdefg', $size = 21, new class implements GeneratorInterface { /** * @inheritDoc */ public function random($size) { //TODO: implemenation ... } });
random
回调必须接受数组大小并返回一个包含随机数字的数组。如果你想在
format
中使用相同的URL友好的符号,可以从url
模块获取默认字母表
请参阅 CoreInterface::random(...)
以获取核心随机API原型和注释
示例
请参阅 示例 以获取更详细的使用信息。
变更日志
请参阅 变更日志 以获取最近更改的更多信息。
测试
composer test
贡献
注意
如果你有任何问题,请随时在仓库中打开,谢谢!
鸣谢
许可协议
MIT许可协议(MIT)。请参阅 许可文件 以获取更多信息。