2017 © Pedro Peláez
 

library uuid-v4

Implementation of the RFC 4122 UUID version 4 (variant 1) data type

image

pwm/uuid-v4

Implementation of the RFC 4122 UUID version 4 (variant 1) data type

  • Tuesday, June 12, 2018
  • by pwm
  • Repository
  • 1 Watchers
  • 6 Stars
  • 166 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 0 % Grown

The README.md

UUID version 4

Build Status codecov Maintainability Test Coverage License: MIT, (*1)

Implementation of the RFC 4122 UUID version 4 (variant 1) data type. UUID stands for Universally Unique Identifier., (*2)

Table of Contents

Why

We already have comprehensive UUID libraries in PHP, eg. ramsey/uuid., (*3)

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., (*4)

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., (*5)

Requirements

PHP 7.1+, (*6)

Installation

$ composer require pwm/uuid-v4

Usage

Creating a UUIDv4 data type from a valid string:, (*7)

$uuidV4String = '30313233-3435-4637-b839-616263646566';

$uuidV4 = new UuidV4($uuidV4String); // the data type

assert($uuidV4 instanceof UuidV4);
assert($uuidV4String === (string)$uuidV4);

Creating a random UUIDv4 from a 16 byte random seed:, (*8)

$uuidV4 = UuidV4::createFrom(random_bytes(16));

assert($uuidV4 instanceof UuidV4);

Creating from the same seed produces the same UUIDv4:, (*9)

$seed = random_bytes(16);

assert((string)UuidV4::createFrom($seed) === (string)UuidV4::createFrom($seed));

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., (*10)

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., (*11)

Tests

$ vendor/bin/phpunit
$ composer phpcs
$ composer phpstan
$ composer infection

Changelog

Click here, (*12)

Licence

MIT, (*13)

The Versions

12/06 2018

dev-master

9999999-dev https://github.com/pwm/uuid-v4

Implementation of the RFC 4122 UUID version 4 (variant 1) data type

  Sources   Download

MIT

The Requires

  • php >=7.1.0

 

The Development Requires

by Zsolt Szende

uuid-v4

12/06 2018

1.0.1

1.0.1.0 https://github.com/pwm/uuid-v4

Implementation of the RFC 4122 UUID version 4 (variant 1) data type

  Sources   Download

MIT

The Requires

  • php >=7.1.0

 

The Development Requires

by Zsolt Szende

uuid-v4

12/06 2018

1.0.0

1.0.0.0 https://github.com/pwm/uuid-v4

Implementation of the RFC 4122 UUID version 4 (variant 1) data type

  Sources   Download

MIT

The Requires

  • php >=7.1.0

 

The Development Requires

by Zsolt Szende

uuid-v4