Эта библиотека 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