Download the PHP package pwm/uuid-v4 without Composer
On this page you can find all versions of the php package pwm/uuid-v4. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Package uuid-v4
Short Description Implementation of the RFC 4122 UUID version 4 (variant 1) data type
License MIT
Homepage https://github.com/pwm/uuid-v4
Informations about the package uuid-v4
UUID version 4
Implementation of the RFC 4122 UUID version 4 (variant 1) data type. UUID stands for Universally Unique Identifier.
Table of Contents
- Why
- Requirements
- Installation
- Usage
- How it works
- Tests
- Changelog
- Licence
Why
We already have comprehensive UUID libraries in PHP, eg. ramsey/uuid.
My goal was to create a minimalistic implementation of the version 4 UUID spec. UUIDv4-s are randomly generated which makes implementation trivial as it requires nothing other than a random external seed value.
The decision to only implement version 4 resulted in a tiny functional library capturing the UUIDv4 data type that can be understood in minutes. Creation happens using a pure function that takes the random seed and is trivially testable.
Requirements
PHP 7.1+
Installation
$ composer require pwm/uuid-v4
Usage
Creating a UUIDv4 data type from a valid string:
Creating a random UUIDv4 from a 16 byte random seed:
Creating from the same seed produces the same UUIDv4:
How it works
UUID version 4 is defined in RFC 4122 as a sequence of 128 bits, where 6 bits are fixed (4 for the version, 2 for the variant) leaving 122 randomly generated bits for entropy.
UuidV4
is a simple data type that can only be created from valid UUIDv4 strings. It comes with a createFrom()
function that facilitates the creation of random UUIDv4-s from 16 byte random seeds. It is to be used with PHP's random_bytes()
function.
Tests
$ vendor/bin/phpunit
$ composer phpcs
$ composer phpstan
$ composer infection
Changelog
Click here
Licence
MIT