icecave/druid

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

一个符合RFC-4122规范的库,用于生成和解析全局唯一标识符(UUID)。

1.0.1 2014-11-08 08:34 UTC

This package is not auto-updated.

Last update: 2022-02-01 12:27:43 UTC


README

该项目已被作者弃用。请使用ramsey/uuid

Druid是一个符合[RFC-4122]的PHP库,用于生成和解析全局唯一标识符(UUID)。

composer require icecave/druid

示例

Druid为每个支持的UUID版本提供了一个生成器类。创建UUID的步骤是首先实例化所需UUID版本的生成器,然后调用create()方法。

所有生成器类都实现了UuidGeneratorInterface接口,并产生实现了UuidInterface的UUID。

生成UUID

版本1 - 基于网络地址和时间的标识符

// Not yet implemented.

版本2 - 基于网络地址和时间,并带有POSIX用户信息的标识符

// Not yet implemented.

版本3 - 基于命名的MD5哈希标识符

// Not yet implemented.

版本4 - 随机生成的标识符

$generator = new Icecave\Druid\UuidVersion4Generator;
$uuid = $generator->generate();

assert($uuid instanceof Icecave\Druid\UuidInterface);

版本5 - 基于命名的SHA-1标识符

// Not yet implemented.

解析UUID

可以使用Uuid::fromString()Uuid::fromBinary()方法分别从十六进制字符串和二进制缓冲区构建UUID。

$uuidFromString = Icecave\Druid\Uuid::fromString(
    '550e8400-e29b-41d4-a716-446655440000'
);

$uuidFromBinary = Icecave\Druid\Uuid::fromBinary(
    "\x55\x0e\x84\x00\xe2\x9b\x41\xd4\xa7\x16\x44\x66\x55\x44\x00\x00"
);