# Используемая архитектура программного обеспечения

1. Основная библиотека на которой построена архитектура это php-framework Yii2 со всеми обновлениями основных библиотек, данного php-framework
2. Разрешение зависимостей
1. Технология разрешения зависимостей используемых сторонних библиотек основана на composer - менеджер зависимостей PhP.
2. Технология построения библиотек и разрешения зависимостей для фронтенд основана на npm - менеджер пакетов, используемый Node.js-приложениями.
3. Данный подход позволяет поддерживать точное совпадение используемых библиотек на стороне рабочего сервера и окружения разработки и тестирования

4. Для актуальности и обмена файлов приложения используется система контроля версий Git, что позволяет благодаря отдельному git серверу, разделить рабочий сервер от окружения разработки и тестирования
5. Для контроля чистоты кода используется технология основанная на pre-commit hook. Хук проверяет Code Style файлов в коммите на соответствие Yii2 PSR-2 Standart. Если есть ошибки - коммит произведен не будет. Для работы требуется:
1. git
2. phpcs
3. Php Code Sniffer

7. Для возможности расширения и масштабируемости используется подход разделения на приложения и модульность приложений, что дает возможность использование различных модулей, классов и т.д. в различных местах.