Почти полтора года назад я выложил пост с основными идеями для CI-пайплайна проекта на PHP. С тех пор не так много изменилось, разве что Rector стабилизировался и для многих стал инструментом рефакторинга номер один, а в Composer появился встроенный анализ уязвимостей.
Представляю обновлённый список по категориям ("+" помечены новые пункты, через "/" перечислены альтернативы).
Рефакторинг
+ автоматический рефакторинг и актуализация кода (Rector),
• кодстайл (PHP CS Fixer / PHP_CodeSniffer / EasyCodingStandard),
• статический анализ (Psalm / PHPStan / PHPMD).
Пакеты
+ проверка на уязвимости (composer audit),
• валидность composer.json (composer validate),
• явное требование задействованных пакетов (ComposerRequireChecker),
• отсутствие неиспользуемых пакетов (composer-unused).
Symfony Dependency Injection
+ собирабельность prod-контейнера (
bin/console cache:clear --env=prod),• проверка синтаксиса Yaml-файлов (
bin/console lint:yaml config --parse-tags),• проверка соответствия типов инъекций контейнера Symfony (
bin/console lint:container),• отсутствие устаревших сервисов и конфигов Symfony (
bin/console debug:container --deprecations).Twig
• проверка синтаксиса Twig-шаблонов (
bin/console lint:twig).Doctrine
• валидность маппинга и соответствие ему схемы БД (
bin/console doctrine:schema:validate),• корректность продакшн-конфигурации (
bin/console doctrine:ensure-production-settings --env=prod).Модули
• контроль связности/зацепления и направления зависимостей (Deptrac).
Ну и конечно же тесты
+ мутационное тестирование (Infection),
• сами тесты (PHPUnit / Codeception).
Список всё так же вдохновлён нашим пайплайном в HappyInc. Пишите в комментариях, без чего не обходится сборка вашего проекта и что ещё рекомендуете попробовать.
Также обратите внимание на репозиторий Static analysis tools for PHP и доклад 25+ инструментов для аудита кода.