Эта библиотека PHP представляет собой набор свойств и интерфейсов, которые добавляют поведение к сущностям и репозиториям Doctrine.
В настоящее время он обрабатывает:
composer require knplabs/doctrine-behaviors
Все, что вам нужно сделать, это определить сущность Doctrine:
Для некоторых вариантов поведения, таких как дерево, вы можете использовать черты репозитория:
<?php
declare (strict_types= 1 );
namespace App Repository ;
use Doctrine ORM EntityRepository ;
use Knp DoctrineBehaviors ORM Tree TreeTrait ;
final class CategoryRepository extends EntityRepository
{
use TreeTrait;
}
Вуаля!
Теперь у вас есть рабочая Category
, которая ведет себя так.
Доступно расширение PHPStan, предоставляющее следующие возможности:
TranslatableInterface::getTranslations()
и TranslatableInterface::getNewTranslations()
TranslatableInterface::translate()
TranslationInterface::getTranslatable()
Включите phpstan-extension.neon
в конфигурацию PHPStan вашего проекта:
# phpstan.neon
includes :
- vendor/knplabs/doctrine-behaviors/phpstan-extension.neon
1 функция на пул-реквест
Новая функция нуждается в тестировании
Тесты и статический анализ должны пройти :
vendor/bin/phpunit
composer fix-cs
composer phpstan
Между 1 и 2 произошло много изменений, но не волнуйтесь. Этот пакет использует Rector, который выполнит обновление за вас.
composer require rector/rector --dev
Создайте конфигурацию rector.php
:
vendor/bin/rector init
Добавьте набор обновлений Doctrine Behaviors в rector.php
:
use Rector Core Configuration Option ;
use Symfony Component DependencyInjection Loader Configurator ContainerConfigurator ;
use Rector Doctrine Set DoctrineSetList ;
return static function ( ContainerConfigurator $ containerConfigurator ): void {
$ containerConfigurator -> import (DoctrineSetList:: DOCTRINE_BEHAVIORS_20 );
};
Беги, ректор:
vendor/bin/rector process src