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

2.8.3 2020-09-21 19:21 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"