mirror of
https://github.com/alrayyes/wiki.git
synced 2024-11-22 19:46:23 +00:00
56 lines
1.3 KiB
Markdown
56 lines
1.3 KiB
Markdown
---
|
|
date: 2020-11-16
|
|
id: 1a128c92-4b0d-4a5a-88e8-fcd59eff2e8e
|
|
title: Symfony UUID Component
|
|
---
|
|
|
|
# Description
|
|
|
|
Generate UUIDS[^1] and ULIDS[^2]
|
|
|
|
# Syntax
|
|
|
|
``` php
|
|
use Symfony\Component\Uid\Uuid;
|
|
use Symfony\Component\Uid\Ulid;
|
|
|
|
// generating a random UUID type 4 (all UUID types are supported)
|
|
$uuid = Uuid::v4();
|
|
|
|
// generating a UUID Type 6 (which is not part of the standard, but it's
|
|
// supported by the component because it's popular enough)
|
|
$uuid = Uuid::v6();
|
|
|
|
// generating a ULID (there's only one type of them)
|
|
$ulid = new Ulid();
|
|
```
|
|
|
|
``` php
|
|
// checking if some UUID is null
|
|
use Symfony\Component\Uid\NilUuid;
|
|
if ($uuid instanceof NilUuid) {
|
|
// ...
|
|
}
|
|
|
|
// comparing UUIDs
|
|
$uuid1 = Uuid::v1();
|
|
$uuid4 = Uuid::v4();
|
|
$uuid1->equals($uuid4); // false
|
|
|
|
// converting to different formats
|
|
$ulid = Ulid::fromString('01E439TP9XJZ9RPFH3T1PYBCR8');
|
|
$ulid->toBinary(); // string(16) "..." (binary contents can't be printed)
|
|
$ulid->toBase32(); // string(26) "01E439TP9XJZ9RPFH3T1PYBCR8"
|
|
$ulid->toBase58(); // string(22) "1BKocMc5BnrVcuq2ti4Eqm"
|
|
$ulid->toRfc4122(); // string(36) "0171069d-593d-97d3-8b3e-23d06de5b308"
|
|
```
|
|
|
|
# Normalization
|
|
|
|
- [UUID Normalizer](20201117103957-uuid_normalizer)
|
|
|
|
# Footnotes
|
|
|
|
[^1]: <https://en.wikipedia.org/wiki/Universally_unique_identifier>
|
|
|
|
[^2]: <https://github.com/ulid/spec>
|