Rhumsaa\Uuid for PHP

About
Rhumsaa\Uuid is a PHP 5.3+ library for generating and working with
RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).
From Wikipedia:
The intent of UUIDs is to enable distributed systems to uniquely identify
information without significant central coordination. In this context the word
unique should be taken to mean "practically unique" rather than "guaranteed
unique". Since the identifiers have a finite size, it is possible for two
differing items to share the same identifier. The identifier size and
generation process need to be selected so as to make this sufficiently
improbable in practice. Anyone can create a UUID and use it to identify
something with reasonable confidence that the same identifier will never be
unintentionally created by anyone to identify something else. Information
labeled with UUIDs can therefore be later combined into a single database
without needing to resolve identifier (ID) conflicts.
Much inspiration for this library came from the Java and
Python UUID libraries.
API Documentation
The latest class API documentation is available online. This project
uses ApiGen to generate this documentation. To
generate the documentation on your own, run apigen from the root of the project.
This will generate documentation in the build/apidocs/ folder.
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 documentation 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
require 'vendor/autoload.php';
use Rhumsaa\Uuid\Uuid;
use Rhumsaa\Uuid\Exception\UnsatisfiedDependencyException;
try {
$uuid1 = Uuid::uuid1();
echo $uuid1->toString() . "\n";
$uuid3 = Uuid::uuid3(Uuid::NAMESPACE_DNS, 'php.net');
echo $uuid3->toString() . "\n";
$uuid4 = Uuid::uuid4();
echo $uuid4->toString() . "\n";
$uuid5 = Uuid::uuid5(Uuid::NAMESPACE_DNS, 'php.net');
echo $uuid5->toString() . "\n";
} catch (UnsatisfiedDependencyException $e) {
echo 'Caught exception: ' . $e->getMessage() . "\n";
}
Installation
The preferred method of installation is via Packagist and Composer. Run
the following command to install the package and add it as a requirement to
composer.json:
composer.phar require "ramsey/uuid=~2.8"