v.chetkov / php-clean-architecture
PHP Clean Architecture
Installs: 41 496
Dependents: 1
Suggesters: 0
Security: 0
Stars: 143
Watchers: 7
Forks: 6
Open Issues: 1
Requires
- ext-json: *
- ext-mbstring: *
- psr/log: *
- twig/twig: *
Requires (Dev)
- phpstan/phpstan: ^0.12.90
- squizlabs/php_codesniffer: ^3.6
This package is auto-updated.
Last update: 2024-11-19 02:00:52 UTC
README
To continue in English go to README.en
PHP Clean Architecture
Инструмент для автоматизации контроля над качеством архитектуры приложений написанных на PHP, а также упрощения анализа и визуализации некоторых метрик.
Идея его создания была навеяна книгой "Чистая Архитектура" (Роберта Мартина). Если еще не читал, можешь ознакомиться с её ключевыми идеями, на которых базируется инструмент https://habr.com/ru/post/504590/
Установка
composer require v.chetkov/php-clean-architecture --dev
Конфигурация
Далее копируем образец конфига в корень проекта
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}
Отчет визуализирует текущее состояние проекта, наглядно отображает взаимосвязи между компонентами, их силу, удалённость компонентов от главной последовательности, а также подсвечивает обнаруженные на основе конфига нежелательные зависимости и прочие архитектурные проблемы.
- 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 не только к новым проектам, но и к уже существующим, и уже имеющим проблемы, устранение которых требует времени.
- Отчёт/Check по списку файлов
Если вы хотите осуществить проверку на наличие проблем или построить граф зависимостей и провести анализ не по всему проекту, а по некоторой его части (к примеру по списку изменённых файлов), вы можете установить значение переменной окружения 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}