Rhumsaa\Uuid
A PHP 5.3+ library for generating and working with RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).
Much inspiration for this library came from the Java and Python UUID libraries.
Requirements
Some methods in this library have requirements due to integer size restrictions on 32-bit and 64-bit builds of PHP. A 64-bit build of PHP and the Moontoast\Math library are recommended. However, this library is designed to work on 32-bit builds of PHP without Moontoast\Math, with some degraded functionality. Please check the API documention for more information.
If a particular requirement is not present, then a [\Rhumsaa\Uuid\Exception\UnsatisfiedDependencyException][]
is thrown, allowing one to catch a bad call in an environment where the call is
not supported and gracefully degrade.
Examples
<?php
use Rhumsaa\Uuid\Uuid;
// Generate a version 1 (time-based) UUID
$uuid1 = Uuid::uuid1();
echo $uuid1 . "\n"; // e4eaaaf2-d142-11e1-b3e4-080027620cdd
// Generate a version 3 (name-based and hashed with MD5) UUID
$uuid3 = Uuid::uuid3(Uuid::NAMESPACE_DNS, 'php.net');
echo $uuid3 . "\n"; // 11a38b9a-b3da-360f-9353-a5a725514269
// Generate a version 4 (random) UUID
$uuid4 = Uuid::uuid4();
echo $uuid4 . "\n"; // 25769c6c-d34d-4bfe-ba98-e0ee856f3e7a
// Generate a version 5 (name-based and hashed with SHA1) UUID
$uuid5 = Uuid::uuid5(Uuid::NAMESPACE_DNS, 'php.net');
echo $uuid5 . "\n"; // c4a760a8-dbcf-5254-a0d9-6a4474bd1b62
Installation
The preferred method of installation is via Packagist, as this provides
the PSR-0 autoloader functionality. The following composer.json will download
and install the latest version of the Uuid library into your project:
{
"require": {
"rhumsaa/uuid": "2.0.*"
}
}
