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 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 | 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";