Инструмент для автоматизации контроля над качеством архитектуры приложений написанных на PHP, а также упрощения анализа и визуализации некоторых метрик.
Идея его создания была навеяна книгой "Чистая Архитектура" (Роберта Мартина). Если еще не читал можешь ознакомиться с её ключевыми идеями, на которых базируется инструмент https://habr.com/ru/post/504590/
composer require v.chetkov/php-clean-architecture
Далее копируем образец конфига в корень проекта
cp vendor/v.chetkov/php-clean-architecture/example.phpca-config.php phpca-config.php
Все детали конфигурации подробно описаны в образце конфига https://github.com/Chetkov/php-clean-architecture/blob/master/example.phpca-config.php, и второй части статьи https://habr.com/ru/post/504590/
- Формирование отчета для анализа.
vendor/bin/phpca-build-reports {?path/to/phpca-config.php}
Отчет визуализирует текущее состояние системы, наглядно отображает взаимосвязи между компонентами, их силу, удалённость
компонентов от главной последовательности, а также подсвечивает обнаруженные, на основе конфига, нежелательные зависимости
и прочие архитектурные проблемы.
- Check для CI.
vendor/bin/phpca-check {?path/to/phpca-config.php}
В случае нарушения кодом ограничений, заданных конфигом, информирует об обнаруженных проблемах и завершает выполнение с ошибкой. Рекоммендуется добавить запуск этой команды в процес CI (это гарантирует соответствие кода, попавшего в сборку, настроенным ограничениям)
- Разрешенное состояние.
vendor/bin/phpca-allow-current-state {?path/to/phpca-config.php}
Команда сохранит текущее состояние проекта, взаимосвязи между существующими классами, в отдельный файл. При последующих запусках phpca-check, проблемы относящиеся к сохраненному состоянию будут проигнорированы.
Это дает возможность легко подключать php-clean-architecture не только к новым проектам, но и к уже работающим, в которых уже есть ряд проблем, устранение которых требует времени.