| name | symfony-7-4-uid |
| description | Symfony 7.4 UID component reference for generating and manipulating unique identifiers. Use when working with UID, UUID, ULID, unique identifiers, UuidV4, UuidV7, AbstractUid, Doctrine UUID type, UuidFactory, Ulid, toBase32, toBase58, toRfc4122, NilUuid, NilUlid, UlidFactory, UuidType, UlidType, or any unique identifier-related Symfony code. |
Symfony 7.4 UID Component
Overview
The Symfony UID component provides an object-oriented API to generate and represent UIDs (Unique Identifiers). It supports ULIDs and UUID versions 1-8, with implementations compatible with both 32-bit and 64-bit processors.
Installation
composer require symfony/uid
Quick Reference
Generating UUIDs
use Symfony\Component\Uid\Uuid;
$uuid = Uuid::v4();
$uuid = Uuid::v7();
$uuid = Uuid::v6();
$uuid = Uuid::v1();
$uuid = Uuid::v3(Uuid::fromString(Uuid::NAMESPACE_DNS), 'example.com');
$uuid = Uuid::v5(Uuid::fromString(Uuid::NAMESPACE_URL), 'https://example.com');
Generating ULIDs
use Symfony\Component\Uid\Ulid;
$ulid = new Ulid();
Creating from Strings
$uuid = Uuid::fromString('d9e7a184-5d5b-11ea-a62a-3499710062d0');
$uuid = Uuid::fromBinary($binaryData);
$uuid = Uuid::fromBase32('6SWYGR8QAV27NACAHMK5RG0RPG');
$uuid = Uuid::fromBase58('TuetYWNHhmuSQ3xPoVLv9M');
$ulid = Ulid::fromString('01E439TP9XJZ9RPFH3T1PYBCR8');
$ulid = Ulid::fromBase58('1BKocMc5BnrVcuq2ti4Eqm');
Converting UIDs
$uuid->toBinary();
$uuid->toBase32();
$uuid->toBase58();
$uuid->toRfc4122();
$uuid->toHex();
$uuid->toString();
Validation
Uuid::isValid($value);
Ulid::isValid($value);
Uuid::isValid($value, Uuid::FORMAT_RFC_4122);
Uuid::isValid($value, Uuid::FORMAT_BASE_32 | Uuid::FORMAT_BASE_58);
Uuid::isValid($value, Uuid::FORMAT_ALL);
Doctrine Integration
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Types\UuidType;
use Symfony\Bridge\Doctrine\IdGenerator\UuidGenerator;
use Symfony\Component\Uid\Uuid;
#[ORM\Entity]
class Product
{
#[ORM\Id]
#[ORM\Column(type: UuidType::NAME, unique: true)]
#[ORM\GeneratedValue(strategy: 'CUSTOM')]
#[ORM\CustomIdGenerator('doctrine.uuid_generator')]
private ?Uuid $id;
#[ORM\Column(type: UuidType::NAME)]
private Uuid $externalId;
}
Factory Pattern
use Symfony\Component\Uid\Factory\UuidFactory;
use Symfony\Component\Uid\Factory\UlidFactory;
class MyService
{
public function __construct(
private UuidFactory $uuidFactory,
private UlidFactory $ulidFactory,
) {}
public function generate(): void
{
$uuid = $this->uuidFactory->create();
$uuid = $this->uuidFactory->randomBased()->create();
$ulid = $this->ulidFactory->create();
}
}
Working with Time-Based UIDs
$uuid = Uuid::v7();
$datetime = $uuid->getDateTime();
$v1 = Uuid::v1();
$v6 = $v1->toV6();
$v7 = $v1->toV7();
Full Documentation