There's a newer version available. You should consider upgrading your project to Mako 6.3.

UUID helper



The UUID class contains methods used to validate and generate UUIDs.


Usage

The validate method checks if a string is a valid UUID. It will return true if is does and false if not.

$valid = UUID::validate('f47ac10b-58cc-4372-a567-0e02b2c3d479'); // "true"

$valid = UUID::validate('x47ac10b-58cc-4372-a567-0e02b2c3d479'); // "false"

The v3 method will generate and return a version 3 UUID.

// The namespace must be a valid UUID

$uuid = UUID::v3('f47ac10b-58cc-4372-a567-0e02b2c3d479', 'foobar');

// You can also use one of the predefined namespaces (DNS, URL, OID and X500)

$uuid = UUID::v3(UUID::OID, 'foobar');

The v4 method will return a version 4 UUID.

$uuid = UUID::v4();

The v5 method will return a version 5 UUID.

// The namespace must be a valid UUID

$uuid = UUID::v5('f47ac10b-58cc-4372-a567-0e02b2c3d479', 'foobar');

// You can also use one of the predefined namespaces (DNS, URL, OID and X500)

$uuid = UUID::v5(UUID::OID, 'foobar');

The sequential methods lets you generate sequential UUIDs where the first 48 bit are reserved for the timestamp.

$uuid = UUID::sequential();

Note that the the timestamp part of the UUID is only precise down to 10 microseconds so if you generate UUIDs in a loop where nothing else happens then you might end up with values that are not sequential (they should still be unique though).

The toBinary method converts a UUID from a hexadecimal representation to binary.

$binary = UUID::toBinary('f47ac10b-58cc-4372-a567-0e02b2c3d479');

The toHexadecimal method converts a binary representation of a UUID to a hexadecimal representation.

$hexadecimal = UUUID::toHexadecimal($binary);