decodelabs / guidance
Generalised UUID generation and parsing interface
v0.2.3
2025-05-09 16:17 UTC
Requires
- php: ^8.4
- brick/math: ^0.10|^0.11|^0.12
- decodelabs/exceptional: ^0.5.2
- decodelabs/veneer: ^0.12.3
- ramsey/uuid: ^4.7.6
Requires (Dev)
README
Generalised UUID generation and parsing interface
Guidance provides a simplified interface for generating and parsing UUIDs of various types. It is designed to be used as a common interface for other libraries that need to work with UUIDs, without having to worry about the specifics of each type and implementation of the generator.
Guidance provides a stripped down front end over the Ramsey UUID library by default, but can be extended to support other implementations where required.
It also provides a simple interface for generating and parsing ULIDs, which are a more modern alternative to UUIDs.
Installation
Install via Composer:
composer require decodelabs/guidance
Usage
use DecodeLabs\Guidance; use DecodeLabs\Guidance\Uuid\Format; // Generate a v4 UUID $v4 = Guidance::createV4Uuid(); $version = $v4->version; // Version::V4 $string1 = (string)$v4; // Full UUID string $string2 = $v4->shorten(); // Base 62 (default) encoded UUID $string3 = $v4->shorten(Format::FlickrBase58); // Base 58 encoded UUID echo $v4->bytes; // Raw bytes of the UUID $new1 = Guidance::uuidFrom($string1); // Parse full UUID string $new2 = Guidance::uuidFromShortString($string3, Format::FlickrBase58); $ulid = Guidance::createUlid(); // Generate a ULID echo $ulid->dateTime->format('Y-m-d H:i:s'); // Get the date and time from the ULID
Licensing
Guidance is licensed under the MIT License. See LICENSE for the full license text.