phpexperts/conciseuuid

一个使用简洁UUID(base62)作为键的Eloquent模型。

v2.5.0 2021-11-07 16:20 UTC

This package is auto-updated.

Last update: 2024-09-07 22:49:02 UTC


README

ConciseUuid是一个使用简洁UUIDv4作为主键的Eloquent模型。

一个普通的UUID是36个字符,看起来像

d318fb95-5b49-47ca-abd5-326a60524e70

这非常长,在base16中有很多不必要的空格。

ConciseUuid取这个UUID,去除短横线,并将base16转换为base62(0-9,a-z,A-Z)。以下是上述UUID的简洁版本

Old: d318fb95-5b49-47ca-abd5-326a60524e70
New: 6QKnU3XheQMk3E6Vq1B4l6

如您所见,它更加简洁:少15个字符!

由于UUIDv4算法的指定方式,UUID永远不会以除数字(0-9)之外的内容开始。因此,如果您想得到特殊类别的UUID,请传递true。这些UUID将始终以字母开头,让您能够快速区分它们与普通UUID。

echo ConciseUuid::generateNewId(true);
// Output: rEBzkc6s67JU3kI7ZuA7TU

用法

SQL: 
CREATE TABLE my_model (id char(22) primary key);

PHP:
namespace PHPExperts\ConciseUuid\ConciseUuidModel;

class MyModel extends ConciseUuidModel
{
}

For your users table:
namespace PHPExperts\ConciseUuid\ConciseUuidAuthModel;

class User extends ConciseUuidAuthModel
{
}

安装

通过Composer

$ composer require phpexperts/conciseuuid

启用GMP扩展可以真正提高此包的执行时间。

用例

✔ 生成新ID函数始终返回22个字符长的字符串 ✔ 正常ID以数字开头 ✔ 系统生成的ID以字母开头 ✔ 可以转换为简洁UUID ✔ 可以转换为UUID ✔ 可以转换为不带短横线的UUID ✔ 可以生成新的版本4 UUID ✔ 可以从UUID中去除短横线

变更日志

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

测试

$ phpunit

贡献

如果您想进行改进,请查看contributing.md

致谢

许可协议

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