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)
69a873de-19eb-4461-9465-4d8756ca7590
ae7c2fdd-1b3e-4d9d-be10-19e99d44a04e
1b4a02a8-777d-46d2-b1e3-092a8f21497b
Notice: Completely random
UUID v7 (Timestamp)
01994262-2707-700e-b72a-56e2f121332c
01994262-2707-7018-ad2a-1466a6b2c8ba
01994262-2707-7029-92f8-2520a2ddada5
Notice: Sequential ordering
Working with UUIDs
Access different formats and validate UUIDs:
$uuid = Uuid::v4(); // Different formatsecho $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 | 2d95c890-9083-11f0-b3aa-3b051558e642 |
v4 | Random | General purpose ✓ | ec2b6a4c-5c7a-4b40-ae26-f147ad73b295 |
v7 | Timestamp | Database optimized ✓ | 01994262-2707-703a-a0a8-bb5be68cfdc0 |
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";