Stars: 130
Forks: 5
Pull Requests: 8
Issues: 3
Watchers: 7
Last Updated: 2023-07-31 20:50:51
Инструмент для измерения качества, упрощения анализа и автоматизации контроля архитектуры приложений на PHP.
License: MIT License
Languages: PHP, Twig
To continue in English go to README.en
Инструмент для автоматизации контроля над качеством архитектуры приложений написанных на 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/ и https://habr.com/ru/post/686236/
vendor/bin/phpca-build-reports {?path/to/phpca-config.php}
Отчет визуализирует текущее состояние проекта, наглядно отображает взаимосвязи между компонентами, их силу, удалённость компонентов от главной последовательности, а также подсвечивает обнаруженные на основе конфига нежелательные зависимости и прочие архитектурные проблемы.
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 не только к новым проектам, но и к уже существующим, и уже имеющим проблемы, устранение которых требует времени.
Если вы хотите осуществить проверку на наличие проблем или построить граф зависимостей и провести анализ не по всему проекту, а по некоторой его части (к примеру по списку изменённых файлов), вы можете установить значение переменной окружения PHPCA_ALLOWED_PATHS Пример использования:
export PHPCA_ALLOWED_PATHS=`git diff master --name-only` PHPCA_REPORTS_DIR='phpca-report'; vendor/bin/phpca-build-reports {?path/to/phpca-config.php}