rhumsaa/uuid

此包已被弃用且不再维护。作者建议使用 ramsey/uuid 包。

不再维护。请使用 ramsey/uuid。这是一个适用于 PHP 5.3+ 的库,用于生成 RFC 4122 版本 1、3、4 和 5 的通用唯一标识符 (UUID)。

2.8.2 2015-07-23 19:00 UTC

This package is not auto-updated.

Last update: 2022-02-01 12:21:06 UTC


README

警告:此包不再维护。请使用 ramsey/uuid

Build Status Coverage Status Latest Stable Version Latest Unstable Version Total Downloads HHVM Status

关于

Rhumsaa\Uuid 是一个适用于 PHP 5.3+ 的库,用于生成和操作 RFC 4122 版本 1、3、4 和 5 的通用唯一标识符 (UUID)。

来自 维基百科

UUID 的目的是使分布式系统能够在不进行显著中央协调的情况下唯一标识信息。在这个背景下,“唯一”一词应该理解为“实际上唯一”,而不是“保证唯一”。由于标识符具有有限的大小,两个不同的项目可能具有相同的标识符。需要选择标识符的大小和生成过程,以确保这在实践中足够不可能。任何人都可以创建一个 UUID 并使用它来识别某物,有合理的信心可以保证不会有人无意中创建相同的标识符来识别其他事物。因此,使用 UUID 标记的信息可以在以后组合到单个数据库中,而无需解决标识符(ID)冲突。

这个库的灵感大多来自 JavaPython 的 UUID 库。

API 文档

最新的类 API 文档可在网上找到。此项目使用 ApiGen 生成此文档。要生成自己的文档,请在项目的根目录下运行 apigen。这将在 build/apidocs/ 文件夹中生成文档。

要求

由于 32 位和 64 位 PHP 构建的整数大小限制,此库中的某些方法有要求。建议使用 64 位 PHP 构建和 Moontoast\Math 库。然而,此库旨在在没有 Moontoast\Math 的情况下在 32 位 PHP 构建上运行,尽管功能会有所降低。请查阅 API 文档以获取更多信息。

如果缺少特定要求,则将抛出 Rhumsaa\Uuid\Exception\UnsatisfiedDependencyException 异常,允许您在不受支持的调用环境中捕获不良调用并优雅地降级。

示例

<?php
require 'vendor/autoload.php';

use Rhumsaa\Uuid\Uuid;
use Rhumsaa\Uuid\Exception\UnsatisfiedDependencyException;

try {

    // Generate a version 1 (time-based) UUID object
    $uuid1 = Uuid::uuid1();
    echo $uuid1->toString() . "\n"; // e4eaaaf2-d142-11e1-b3e4-080027620cdd

    // Generate a version 3 (name-based and hashed with MD5) UUID object
    $uuid3 = Uuid::uuid3(Uuid::NAMESPACE_DNS, 'php.net');
    echo $uuid3->toString() . "\n"; // 11a38b9a-b3da-360f-9353-a5a725514269

    // Generate a version 4 (random) UUID object
    $uuid4 = Uuid::uuid4();
    echo $uuid4->toString() . "\n"; // 25769c6c-d34d-4bfe-ba98-e0ee856f3e7a

    // Generate a version 5 (name-based and hashed with SHA1) UUID object
    $uuid5 = Uuid::uuid5(Uuid::NAMESPACE_DNS, 'php.net');
    echo $uuid5->toString() . "\n"; // c4a760a8-dbcf-5254-a0d9-6a4474bd1b62

} catch (UnsatisfiedDependencyException $e) {

    // Some dependency was not met. Either the method cannot be called on a
    // 32-bit system, or it can, but it relies on Moontoast\Math to be present.
    echo 'Caught exception: ' . $e->getMessage() . "\n";

}

安装

推荐的安装方法是使用 PackagistComposer。运行以下命令来安装软件包并将其添加到 composer.json 的依赖项中

composer.phar require "ramsey/uuid=~2.8"