Uuidable

← Uuidable

Ashterix

docs: Doctrine section with Doctrine Behaviors and Doctrine Helper (uk + en)

uk/docs/doctrine/doctrine-behaviors/uuidable.md новий файл +34 −0

1 + # Uuidable
2 +
3 + Додає сутності UUID версії 4, що генерується при першому збереженні.
4 +
5 + ## Сутність
6 +
7 + ```php
8 + use Doctrine\ORM\Mapping as ORM;
9 + use Ufo\DoctrineBehaviors\Contract\Entity\UuidableInterface;
10 + use Ufo\DoctrineBehaviors\Model\Uuidable\UuidableTrait;
11 +
12 + #[ORM\Entity]
13 + class BlogPost implements UuidableInterface
14 + {
15 + use UuidableTrait;
16 +
17 + #[ORM\Id, ORM\GeneratedValue, ORM\Column]
18 + private ?int $id = null;
19 + }
20 + ```
21 +
22 + ## Як це працює
23 +
24 + * Бандл мапить `uuid` як рядкову nullable-колонку. Це додаткове поле, а не первинний ключ — ідентифікатор сутності лишається вашим.
25 + * На `prePersist` викликається `generateUuid()`: якщо UUID ще немає, створюється `Ramsey\Uuid\Uuid::uuid4()`. Заданий вручну через `setUuid()` не перезаписується.
26 + * `getUuid()` повертає `Ramsey\Uuid\UuidInterface`, навіть якщо з бази прийшов рядок.
27 +
28 + ```php
29 + $post = new BlogPost();
30 + $entityManager->persist($post);
31 + $entityManager->flush();
32 +
33 + $post->getUuid()->toString(); // напр. '1ee9aa1b-6510-4105-92b9-7171bb2f3089'
34 + ```