docs: Doctrine section with Doctrine Behaviors and Doctrine Helper (uk + en)
uk/docs/doctrine/doctrine-helper/README.md
новий файл +52
−0
1
+
# Doctrine Helper
2
+
3
+
:::block class="package-card"
4
+
<include>(docs/doctrine/doctrine-helper/.info.md)
5
+
:::
6
+
7
+
Набір готових трейтів, інтерфейсів і класів для Doctrine, які знімають рутину з опису сутностей: первинні ключі (автоінкремент, UUID, `uniqid`) і PHP enum як тип `ENUM` у MySQL.
8
+
9
+
Це звичайна бібліотека, не Symfony-бандл: вона нічого не реєструє в контейнері й не має власної конфігурації. Трейти підключаються в сутність через `use`, тип enum реєструється в налаштуваннях Doctrine DBAL.
10
+
11
+
## Що всередині
12
+
13
+
| Клас | Призначення |
14
+
|------|-------------|
15
+
| `Ufo\DoctrineHelper\Traits\AutoIncrementIdTrait` | Ціле автоінкрементне `id` |
16
+
| `Ufo\DoctrineHelper\Traits\UuidIdTrait` | `id` — UUID v7, генерується в коді |
17
+
| `Ufo\DoctrineHelper\Traits\UniqueIdTrait` | `id` — 13-символьний рядок `uniqid()` |
18
+
| `Ufo\DoctrineHelper\Traits\UniqueUuidIdTrait` | Застарілий, замість нього — `UuidIdTrait` |
19
+
| `Ufo\DoctrineHelper\Interfaces\IHaveUniqueUuid` | Контракт сутності з рядковим `id` |
20
+
| `Ufo\DoctrineHelper\Interfaces\IHaveAutoincrementId` | Контракт сутності з цілим `id` |
21
+
| `Ufo\DoctrineHelper\Utils\Uuid` | Генерація UUID v7 і детермінованого UUID v3 |
22
+
| `Ufo\DoctrineHelper\DBAL\AbstractEnumType` | Базовий тип DBAL для PHP backed enum → `ENUM(...)` |
23
+
24
+
## Приклад
25
+
26
+
```php
27
+
use Doctrine\ORM\Mapping as ORM;
28
+
use Ufo\DoctrineHelper\Interfaces\IHaveUniqueUuid;
29
+
use Ufo\DoctrineHelper\Traits\UuidIdTrait;
30
+
31
+
#[ORM\Entity]
32
+
class Order implements IHaveUniqueUuid
33
+
{
34
+
use UuidIdTrait; // #[ORM\Id], string(36), unique, getId(): string
35
+
36
+
public function __construct()
37
+
{
38
+
$this->generateUniqueId(); // UUID v7
39
+
}
40
+
}
41
+
```
42
+
43
+
## Розділи
44
+
45
+
* [Ідентифікатори сутностей](/docs/doctrine/doctrine-helper/entity_ids) — трейти первинних ключів, інтерфейси, `Uuid`.
46
+
* [PHP enum як ENUM](/docs/doctrine/doctrine-helper/enum_type) — `AbstractEnumType`, реєстрація типу, обмеження.
47
+
* [Історія змін](/docs/doctrine/doctrine-helper/change_log)
48
+
* [Відомі помилки](/docs/doctrine/doctrine-helper/known_issues/open)
49
+
50
+
:::info
51
+
Документація описує версію 1.1.0 (2025-06-09). Залежності `doctrine/orm` і `doctrine/dbal` задекларовано в `composer.json` лише з 1.1.0; до того бібліотека вимагала тільки `ramsey/uuid`.
52
+
:::
uk/docs/doctrine/doctrine-helper/.info.md
новий файл +18
−0
1
+
[](/docs/doctrine/doctrine-helper/change_log)
2
+
[](https://packagist.org/packages/ufo-tech/doctrine-helper/stats)
3
+
[](https://github.com/UFO-Tech/DoctrineHelper)
4
+
5
+
```bash
6
+
composer require ufo-tech/doctrine-helper
7
+
```
8
+
9
+
* **PHP** 8.3+
10
+
* **Основа** Doctrine ORM 2.12+ · 3, DBAL 3.2+ · 4
11
+
* **Тип** PHP-бібліотека
12
+
* **Категорія** Doctrine
13
+
* **Ліцензія** MIT
14
+
15
+
[GitHub](https://github.com/UFO-Tech/DoctrineHelper)
16
+
[Packagist](https://packagist.org/packages/ufo-tech/doctrine-helper)
17
+
[Історія змін](/docs/doctrine/doctrine-helper/change_log)
18
+
[Відомі помилки](/docs/doctrine/doctrine-helper/known_issues/open)