keiko/uuid-shortener

一个简单的短化库,用于RFC 4122兼容的UUID。将您的36个字符长UUID转换为更短的等效形式。

v1.0.1 2023-12-21 09:22 UTC

README

Minimum PHP Version Build Status

一个简单的短化库,用于RFC 4122兼容的UUID。将您的36个字符长UUID转换为更短的等效形式。

核心概念和灵感来自 pascaldevink/shortuuid 库。如果您只需要简单生成短UUID,我建议您查看他的工作。如果您期望性能,这个库使用 ext-gmp 来加速过程。

安装

推荐的安装方法是使用 PackagistComposer。运行以下命令安装包并将其添加到项目的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。