tgoop.com/phpproglib/5397
Last Update:
Кастомные правила PHPStan для улучшения проектов Symfony
Использование PHPStan помогает улучшить качество PHP-кода, особенно в проектах на Symfony, Doctrine и Laravel. Однако для обеспечения долговечности проекта необходимо внедрять дополнительные правила статического анализа. Это включает в себя высокое покрытие типами, качественное тестирование и автоматическое применение правил через CI.
A. Правила для ясного внедрения зависимостей
NoRequiredOutsideClassRule: Запрещает использование атрибута #[Required]
в трейтах, чтобы избежать сильной связности и сложночитаемого кода. Рекомендуется использовать явное внедрение через конструктор.
NoAbstractControllerConstructorRule: Абстрактные контроллеры не должны иметь конструкторы, чтобы избежать жесткой связности и сложностей при наследовании. Вместо этого следует использовать атрибут #[Required]
для внедрения зависимостей.
NoConstructorAndRequiredTogetherRule: Запрещает одновременное использование конструктора и атрибута #[Required] в одном классе. Необходимо выбрать один способ внедрения зависимостей.
NoFindTaggedServiceIdsCallRule: Предотвращает использование метода findTaggedServiceIds()
, предлагая вместо этого использовать автоконфигурацию через атрибуты или теги в конфигурации.
NoGetInControllerRule: Запрещает использование метода $this->get()
в контроллерах, поощряя внедрение зависимостей через конструктор.
B. Унификация маршрутизации
NoRoutingPrefixRule: Избегает использования префиксов в маршрутах, чтобы обеспечить прозрачность и единообразие определения путей.
NoClassLevelRouteRule: Предотвращает использование маршрутов на уровне класса, предлагая определять пути непосредственно в атрибутах методов для лучшей читаемости и поддержки.
C. Подписчики событий
NoListenerWithoutContractRule: Поощряет использование интерфейса EventSubscriberInterface
вместо слушателей, чтобы хранить метаданные внутри класса и уменьшить объем конфигурации.
NoStringInGetSubscribedEventsRule: Требует использования ссылок на классы событий в методе getSubscribedEvents()
, что облегчает обновление и улучшает поддержку IDE.
👉Читать статью
BY Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
Share with your friend now:
tgoop.com/phpproglib/5397