Continuous Integration



CI — must have для проекта любого размера. CI повышает качество кодовой базы, дисциплинирует команду и сокращает количество и продолжительность ревью.



Идеи проверок на базе нашего пайплайна в Happy Inc.:

• кодстайл (PHP CS Fixer, PHP_CodeSniffer),

• статический анализ (Psalm, PHPStan, PHPMD),

• валидность composer.json/lock (composer validate),

• наличие лишних пакетов (composer-unused),

• отсутствие пакетов в списке явных зависимостей (ComposerRequireChecker),

• уязвимости в пакетах (Roave Security Advisories, Local PHP Security Checker),

• синтаксис Yaml-файлов (Symfony Yaml),

• синтаксис Twig-шаблонов в проектах на Symfony (bin/console lint:twig),

• соответствие типов инъекций контейнера Symfony (bin/console lint:container),

• депрекации сервисов и конфигов Symfony (bin/console debug:container --deprecations),

• маппинг Doctrine и соответствие ему схемы БД (bin/console doctrine:schema:validate),

• конфигурация Doctrine для production (bin/console doctrine:ensure-production-settings --env=prod),

• связность/зацепление и направление зависимостей (Deptrac, dePHPend),

• ну и конечно же, тесты!



Также обратите внимание на репозиторий Static analysis tools for PHP и доклад 25+ инструментов для аудита кода.