hidehalo/nanoid-php

PHP中的nanoid副本

1.1.13 2022-08-04 12:07 UTC

README

Build Status FOSSA Status

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)。请参阅 许可文件 以获取更多信息。

FOSSA Status