keiko / uuid-shortener
一个简单的短化库,用于RFC 4122兼容的UUID。将您的36个字符长UUID转换为更短的等效形式。
v1.0.1
2023-12-21 09:22 UTC
Requires
- php: ^8.1
- brick/math: ^0.11 || ^0.12
Requires (Dev)
- ext-gmp: ^8.1
- php-cs-fixer/shim: ^3.41
- phpbench/phpbench: ^1.1.1
- phpunit/phpunit: ^8.5.26
- rector/rector: ^0.18.12
- vimeo/psalm: ^4.3.1
Suggests
- ext-gmp: If you want to use the Keiko\Uuid\Shortener\GMPShortener and benefit from much improved performance
- ramsey/uuid: A PHP 5.4+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID)
README
一个简单的短化库,用于RFC 4122兼容的UUID。将您的36个字符长UUID转换为更短的等效形式。
核心概念和灵感来自 pascaldevink/shortuuid 库。如果您只需要简单生成短UUID,我建议您查看他的工作。如果您期望性能,这个库使用 ext-gmp
来加速过程。
安装
推荐的安装方法是使用 Packagist 和 Composer。运行以下命令安装包并将其添加到项目的composer.json要求中
composer require keiko/uuid-shortener
示例
<?php require 'vendor/autoload.php'; use Keiko\Uuid\Shortener\Dictionary; use Keiko\Uuid\Shortener\Shortener; // Generate UUID, for example using Ramsey/UUID $uuid = '806d0969-95b3-433b-976f-774611fdacbb'; $shortener = Shortener::make( Dictionary::createUnmistakable() // or pass your own characters set ); echo $shortener->reduce($uuid); // output: mavTAjNm4NVztDwh4gdSrQ
您可以反转此过程,将您的短UUID展开回十六进制值。
<?php require 'vendor/autoload.php'; use Keiko\Uuid\Shortener\Dictionary; use Keiko\Uuid\Shortener\Shortener; $shortUuid = 'mavTAjNm4NVztDwh4gdSrQ'; $shortener = Shortener::make( Dictionary::createUnmistakable() ); echo $shortener->expand($shortUuid); // output: 806d0969-95b3-433b-976f-774611fdacbb
性能
为了从本库中获得最佳性能,建议您在系统中运行 ext-gmp
。
Keiko\Uuid\Shortener\Shortener::make()
将根据您的系统依赖关系选择GMP兼容的短化器或后备短化器。
计划
UUID Shortener与任何UUID生成库无关联。它也不会生成新的UUID。它只有一个目的 - 将您长而十六进制的ID(无论它们来自何方)转换成更短、更易于阅读的字符集。在不久的将来,将添加额外服务,能够与大多数流行的UUID生成器一起生成短UUID。