ramsey/uuid |version| requires the following:
- PHP 8.0+
- ext-json
The JSON extension is normally enabled by default, but it is possible to disable it. Other required extensions include PCRE and SPL. These standard extensions cannot be disabled without patching PHP's build system and/or C sources.
ramsey/uuid recommends installing/enabling the following extensions. While not required, these extensions improve the performance of ramsey/uuid.
The only supported installation method for ramsey/uuid is Composer. Use the following command to add ramsey/uuid to your project dependencies:
composer require ramsey/uuid
After installing ramsey/uuid, the quickest way to get up-and-running is to use the static generation methods.
use Ramsey\Uuid\Uuid;
$uuid = Uuid::uuid4();
printf(
"UUID: %s\nVersion: %d\n",
$uuid->toString(),
$uuid->getFields()->getVersion()?->value
);
This will return an instance of :php:class:`Ramsey\\Uuid\\Rfc4122\\UuidV4`.
Tip
Use the Interfaces
Feel free to use instanceof
to check the specific instance types of
UUIDs. However, when using type hints, it's best to use the interfaces.
The most lenient interface is :php:interface:`Ramsey\\Uuid\\UuidInterface`, while :php:interface:`Ramsey\\Uuid\\Rfc4122\\UuidInterface` ensures the UUIDs you're using conform to the RFC 4122 standard. If you're not sure which one to use, start with the stricter :php:interface:`Rfc4122\\UuidInterface <Ramsey\\Uuid\\Rfc4122\\UuidInterface>`.
ramsey/uuid provides a number of helpful static methods that help you work with and generate most types of UUIDs, without any special customization of the library.