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 (
• соответствие типов инъекций контейнера Symfony (
• депрекации сервисов и конфигов Symfony (
• маппинг Doctrine и соответствие ему схемы БД (
• конфигурация Doctrine для production (
• связность/зацепление и направление зависимостей (Deptrac, dePHPend),
• ну и конечно же, тесты!
Также обратите внимание на репозиторий Static analysis tools for PHP и доклад 25+ инструментов для аудита кода.
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+ инструментов для аудита кода.