UUID Library v1.3.0

Quick Start Guide

webpatser@dev: ~/uuid/1.3.0 $ cat quick-start.md

Quick Start - UUID Library v1.3.0

Get started with high-performance UUID generation in minutes. This guide covers the most common use cases with live examples.

Basic UUID Generation

The most common UUIDs you'll need:

use Webpatser\Uuid\Uuid;
 
// Random UUID (most common)
$uuid4 = Uuid::v4();
echo $uuid4; // e.g., "550e8400-e29b-41d4-a716-446655440000"
 
// Timestamp-based UUID (database optimized)
$uuid7 = Uuid::v7();
echo $uuid7; // e.g., "018f4e7c-8b3a-7000-8000-123456789abc"

Live Generation Comparison

UUID v4 (Random)

ff582b98-51a3-4702-97ce-3878cbea36ed
ac41d607-7a8d-4c10-b87a-91fc42674e05
0ba383c8-f81c-4f3b-9443-68859b021f20

Notice: Completely random

UUID v7 (Timestamp)

019b30d8-dc33-7009-a5e1-935682c510d1
019b30d8-dc33-7012-94df-41ad3e15f884
019b30d8-dc33-702d-8318-933874009a5a

Notice: Sequential ordering

Working with UUIDs

Access different formats and validate UUIDs:

$uuid = Uuid::v4();
 
// Different formats
echo $uuid->string; // "550e8400-e29b-41d4-a716-446655440000"
echo $uuid->hex; // "550e8400e29b41d4a716446655440000"
echo $uuid->bytes; // Raw 16-byte binary data
 
// Validation
$isValid = Uuid::validate('550e8400-e29b-41d4-a716-446655440000'); // true
$isValid = Uuid::validate('invalid-uuid'); // false
 
// Import existing UUIDs
$imported = Uuid::import('550e8400-e29b-41d4-a716-446655440000');

UUID Versions Explained

Version Type Use Case Example
v1 Time + MAC Legacy systems 2a9ae980-dbf6-11f0-b7fd-4fd90ff7d663
v4 Random General purpose ✓ 63169edd-dde0-469f-8374-cb6bd4010904
v7 Timestamp Database optimized ✓ 019b30d8-dc33-7036-a8b3-050c883aef15

Name-Based UUIDs

Generate deterministic UUIDs from names:

// MD5-based (v3)
$uuid3 = Uuid::generate(3, 'example.com', Uuid::NS_DNS);
 
// SHA-1-based (v5) - recommended
$uuid5 = Uuid::generate(5, 'example.com', Uuid::NS_DNS);
 
// Same input = same UUID
$same = Uuid::generate(5, 'example.com', Uuid::NS_DNS);
// $uuid5 === $same (true)

Live Name-Based Example

Input: "example.com" → cfbff0d1-9375-5685-968c-48ce8b15ae17
Input: "example.com" → cfbff0d1-9375-5685-968c-48ce8b15ae17

Same input produces identical UUIDs (deterministic)

Performance Tips

  • Use v4 for general purpose: Maximum randomness, good performance
  • Use v7 for databases: Natural sorting order improves indexing
  • Batch operations: Generate multiple UUIDs in loops efficiently
  • Cache when possible: Store UUIDs rather than regenerating
// Efficient batch generation
$uuids = [];
for ($i = 0; $i < 1000; $i++) {
$uuids[] = Uuid::v7(); // Maintains chronological order
}
 
// Benchmark different versions
$start = microtime(true);
for ($i = 0; $i < 10000; $i++) {
Uuid::v4();
}
$time = (microtime(true) - $start) * 1000;
echo "Generated 10k v4 UUIDs in {$time}ms";

Next Steps