phpexperts / conciseuuid
一个使用简洁UUID(base62)作为键的Eloquent模型。
v2.5.0
2021-11-07 16:20 UTC
Requires
- php: >=7.2.5
- ramsey/uuid: ^4.0
- tuupola/base62: ^2.0
Requires (Dev)
- phpexperts/dockerize: *
- phpunit/phpunit: 9.*
- symfony/var-dumper: ^5.3
Suggests
- ext-gmp: *
- illuminate/support: 5.*|^6.0
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许可协议。请参阅许可文件以获取更多信息。