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)

15e52c57-9b38-4a43-ae96-38a1d58df4f7
7b6ff9b4-0b50-4f91-bfaa-2b109687fe07
ef447b21-3163-4b6c-adcc-c05384578cf9

Notice: Completely random

UUID v7 (Timestamp)

019ee6cf-d3b1-7002-8e43-7027da75599b
019ee6cf-d3b1-7018-82a0-dccd945da649
019ee6cf-d3b1-702f-97fd-d2bd0c77d33c

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 29be8ad0-6cea-11f1-be88-dd5c99ff9208
v4 Random General purpose ✓ 875b679f-afe8-45d7-926b-afd913908a64
v7 Timestamp Database optimized ✓ 019ee6cf-d3b1-7033-8ce5-2cae5eb2eba5

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