decodelabs/guidance

Generalised UUID generation and parsing interface

v0.2.3 2025-05-09 16:17 UTC

README

PHP from Packagist Latest Version Total Downloads GitHub Workflow Status PHPStan License

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.