Doctrine Helper

← Doctrine Helper

Ashterix

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

uk/docs/doctrine/doctrine-helper/README.md новий файл +52 −0

Doctrine Helper

<include>(docs/doctrine/doctrine-helper/.info.md)

Набір готових трейтів, інтерфейсів і класів для Doctrine, які знімають рутину з опису сутностей: первинні ключі (автоінкремент, UUID, uniqid) і PHP enum як тип ENUM у MySQL.

Це звичайна бібліотека, не Symfony-бандл: вона нічого не реєструє в контейнері й не має власної конфігурації. Трейти підключаються в сутність через use, тип enum реєструється в налаштуваннях Doctrine DBAL.

Що всередині

Клас Призначення
Ufo\DoctrineHelper\Traits\AutoIncrementIdTrait Ціле автоінкрементне id
Ufo\DoctrineHelper\Traits\UuidIdTrait id — UUID v7, генерується в коді
Ufo\DoctrineHelper\Traits\UniqueIdTrait id — 13-символьний рядок uniqid()
Ufo\DoctrineHelper\Traits\UniqueUuidIdTrait Застарілий, замість нього — UuidIdTrait
Ufo\DoctrineHelper\Interfaces\IHaveUniqueUuid Контракт сутності з рядковим id
Ufo\DoctrineHelper\Interfaces\IHaveAutoincrementId Контракт сутності з цілим id
Ufo\DoctrineHelper\Utils\Uuid Генерація UUID v7 і детермінованого UUID v3
Ufo\DoctrineHelper\DBAL\AbstractEnumType Базовий тип DBAL для PHP backed enum → ENUM(...)

Приклад

use Doctrine\ORM\Mapping as ORM;
use Ufo\DoctrineHelper\Interfaces\IHaveUniqueUuid;
use Ufo\DoctrineHelper\Traits\UuidIdTrait;

#[ORM\Entity]
class Order implements IHaveUniqueUuid
{
    use UuidIdTrait;   // #[ORM\Id], string(36), unique, getId(): string

    public function __construct()
    {
        $this->generateUniqueId();   // UUID v7
    }
}

Розділи

Документація описує версію 1.1.0 (2025-06-09). Залежності doctrine/orm і doctrine/dbal задекларовано в composer.json лише з 1.1.0; до того бібліотека вимагала тільки ramsey/uuid.

uk/docs/doctrine/doctrine-helper/.info.md новий файл +18 −0

Версія Завантаження Зірки

composer require ufo-tech/doctrine-helper
  • PHP 8.3+
  • Основа Doctrine ORM 2.12+ · 3, DBAL 3.2+ · 4
  • Тип PHP-бібліотека
  • Категорія Doctrine
  • Ліцензія MIT