Класс Uuid
Класс Uuid является частью компонента Serializer
и предназначен для создания и управления уникальными
идентификаторами. Он позволяет генерировать UUID различных
версий, преобразовывать их в строки и бинарный формат,
а также сравнивать между собой. Класс является неизменяемым,
то есть после создания объекта его значение изменить нельзя.
Синтаксис
use SymfonyComponentUidUuid;
// Создание UUID
$uuid = Uuid::v4();
// Преобразование в строку
$str = $uuid->toRfc4122();
Пример
Давайте сгенерируем случайный UUID версии 4 и выведем его:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentUidUuid;
class UuidController extends AbstractController
{
public function index(): Response
{
$uuid = Uuid::v4();
return new Response($uuid->toRfc4122());
}
}
?>
Результат выполнения кода:
"f47ac10b-58cc-4372-a567-0e02b2c3d479"
Пример
Давайте создадим UUID из существующей строки и проверим его валидность:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentUidUuid;
class UuidController extends AbstractController
{
public function index(): Response
{
$uuid = Uuid::fromString('f47ac10b-58cc-4372-a567-0e02b2c3d479');
if ($uuid->equals(Uuid::fromString('f47ac10b-58cc-4372-a567-0e02b2c3d479'))) {
return new Response('UUIDs are equal');
}
return new Response('UUIDs are different');
}
}
?>
Результат выполнения кода:
"UUIDs are equal"
Пример
Давайте сохраним UUID в сущность с помощью Doctrine:
<?php
namespace AppEntity;
use DoctrineORMMapping as ORM;
use SymfonyComponentUidUuid;
#[ORMEntity]
class Article
{
#[ORMId]
#[ORMColumn(type: 'uuid', unique: true)]
private Uuid $id;
#[ORMColumn(type: 'string', length: 255)]
private string $title;
public function __construct()
{
$this->id = Uuid::v4();
}
public function getId(): Uuid
{
return $this->id;
}
public function getTitle(): string
{
return $this->title;
}
public function setTitle(string $title): self
{
$this->title = $title;
return $this;
}
}
?>
Смотрите также
-
метод
v4,
который генерирует случайный UUID -
метод
fromString,
который создаёт UUID из строки -
метод
toRfc4122,
который преобразует UUID в строку -
класс
Ulid,
который работает с ULID-идентификаторами