Обложка канала

Пых

4468 @phpyh

Блог @vudaltsov о разработке на PHP

Пых

4 года назад
Открыть в
Continious Integration 2.0 Почти полтора года назад я выложил пост с основными идеями для 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+ инструментов для аудита кода.
GitHub - rectorphp/rector: Instant Upgrades and Automated Refactoring of any PHP 5.3+ code

Instant Upgrades and Automated Refactoring of any PHP 5.3+ code - GitHub - rectorphp/rector: Instant Upgrades and Automated Refactoring of any PHP 5.3+ code

GitHub