kuldippujara/nanoid-php

PHP中的nanoid副本

1.1.6 2018-10-18 12:09 UTC

This package is auto-updated.

Last update: 2024-09-19 01:46:48 UTC


README

Build Status

一个轻量级(179字节)、安全的、友好的URL唯一字符串ID生成器,适用于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->formatedId($alphabet = '0123456789abcdefg', $size = 21);

字母表必须包含256个符号或更少。否则,生成器将不安全。

自定义随机字节生成器

# PS: anonymous class is new feature when PHP_VERSION >= 7.0
echo $client->formatedId($alphabet = '0123456789abcdefg', $size = 21,
new class implements GeneratorInterface {
    /**
     * @inheritDoc
     */
    public function random($size)
    {
        //TODO: implemenation ...
    }
});

random回调必须接受数组大小并返回一个随机数字数组。

如果你想在format中使用相同的URL友好的符号,可以从url模块获取默认字母表

请参阅CoreInterface::random(...)以获取核心随机API原型和说明

示例

请参阅示例以获取更多详细使用信息。

变更日志

请参阅变更日志以获取更多关于最近更改的信息。

测试

$composer test

贡献

请参阅CONTRIBUTING行为准则以获取详细信息。

注意

如果你有任何问题,请随时在这个仓库中打开,谢谢!

鸣谢

许可协议

MIT许可协议(MIT)。请参阅许可文件以获取更多信息。