pugx/shortid-php

PHP 中 shortid 的实现

v1.1.0 2022-10-02 13:34 UTC

This package is auto-updated.

Last update: 2024-08-25 12:46:08 UTC


README

Total Downloads Build Status Code Climate Test Coverage codecov SensioLabsInsight License

该库是 PHP 中 ShortId 的实现。

基本用法

只需调用 PUGX\Shortid\Shortid::generate() 即可获取长度为 7 的随机字符串,例如 "MfiYIvI"。

use PUGX\Shortid\Shortid;

require_once __DIR__.'/vendor/autoload.php';

$id = Shortid::generate();

高级用法

在以下示例中,您可以看到如何更改基本字母表和默认长度。

默认字母表使用所有字母(小写和大写)、所有数字、下划线和连字符。

use PUGX\Shortid\Factory;
use PUGX\Shortid\Shortid;

require_once __DIR__.'/vendor/autoload.php';

$factory = new Factory();
// alphabet string must be 64 characters long
$factory->setAlphabet('é123456789àbcdefghìjklmnòpqrstùvwxyzABCDEFGHIJKLMNOPQRSTUVWX.!@|');
// length must be between 2 and 20 (default is 7)
// of course, a lower length is increasing clashing probability
$factory->setLength(9);
Shortid::setFactory($factory);

$id = Shortid::generate();

作为替代,您可以自定义单个生成

use PUGX\Shortid\Shortid;

require_once __DIR__.'/vendor/autoload.php';

$id9 = Shortid::generate(9, 'é123456789àbcdefghìjklmnòpqrstùvwxyzABCDEFGHIJKLMNOPQRSTUVWX.!@|');
$id5 = Shortid::generate(5);

更易读的字符串

有时,您想避免一些歧义字符,如 B/8I/l(大写/小写)。在这种情况下,您可以将第三个参数 true 传递给 generate 方法。请注意,在这种情况下,将忽略字母表,因此传递一个空字母表是有意义的。

示例

use PUGX\Shortid\Shortid;

require_once __DIR__.'/vendor/autoload.php';

$id = Shortid::generate(7, null, true);

预定义值

如果您需要一个确定性的字符串而不是随机字符串,可以直接调用类构造函数。这可能在需要为测试目的提供预定义数据时很有用。

use PUGX\Shortid\Shortid;

require_once __DIR__.'/vendor/autoload.php';

$myFixedId = new Shortid('5h0r71d');
$anotherFixedId = new Shortid('fooBarZ');

Doctrine

如果您想使用 ShortId 与 Doctrine ORM 一起使用,请参阅 ShortId Doctrine 类型

Doctrine 和 Symfony

如果您想使用 ShortId 与 Doctrine ORM 和 Symfony 框架一起使用,请参阅 ShortId Doctrine 类型包

mbstring 扩展

该库使用 polyfill,因此可以在没有 mbstring 原生扩展的环境中使用。

如果您的环境提供了这样的扩展,您可以通过配置 composer.json 中的 replace 条目来避免安装 polyfill。