kllakk / php-clean-architecture

Инструмент для измерения качества, упрощения анализа и автоматизации контроля архитектуры приложений на PHP.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PHP Clean Architecture

Инструмент для автоматизации контроля над качеством архитектуры приложений написанных на 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/

Использование

  1. Формирование отчета для анализа.
vendor/bin/phpca-build-reports {?path/to/phpca-config.php}

Отчет визуализирует текущее состояние системы, наглядно отображает взаимосвязи между компонентами, их силу, удалённость компонентов от главной последовательности, а также подсвечивает обнаруженные, на основе конфига, нежелательные зависимости и прочие архитектурные проблемы. image image

  1. Check для CI.
vendor/bin/phpca-check {?path/to/phpca-config.php}

В случае нарушения кодом ограничений, заданных конфигом, информирует об обнаруженных проблемах и завершает выполнение с ошибкой. Рекоммендуется добавить запуск этой команды в процес CI (это гарантирует соответствие кода, попавшего в сборку, настроенным ограничениям)

  1. Разрешенное состояние.
vendor/bin/phpca-allow-current-state {?path/to/phpca-config.php}

Команда сохранит текущее состояние проекта, взаимосвязи между существующими классами, в отдельный файл. При последующих запусках phpca-check, проблемы относящиеся к сохраненному состоянию будут проигнорированы.

Это дает возможность легко подключать php-clean-architecture не только к новым проектам, но и к уже работающим, в которых уже есть ряд проблем, устранение которых требует времени.

About

Инструмент для измерения качества, упрощения анализа и автоматизации контроля архитектуры приложений на PHP.

License:MIT License


Languages

Language:PHP 88.2%Language:Twig 11.8%