Yii2 advanced application. Описание расширенного шаблона приложения

Yii2 advanced - это скелет приложения на yii framework 2 для создания сложных web проектов с несколькими "ярусами": frontend, backend и консольное приложение, каждое из которых выделено в отдельное yii пиложение. Данный шаблон спроектирован для разработки в команде с возможностью использования различного окружения. Так же данный шаблон содержит реализованный механизм авторизации, регистрации пользователей через БД и восстановления пароля прямиком из коробки.
Давайте рассмотрим структуру директорий и файлов. На первый взгляд она может показаться сложной, но в ней легко разобраться, так как она отлично структурирована:
common
config/ общие настройки приложения
mail/ файлы представлений для e-mail писем
models/ общие модели, которые используются в бэкэнде и фронтэнде
console
config/ настройки консольного приложения
controllers/ консольные контроллеры (команды)
migrations/ миграция БД
models/ специфичные модели для консольного приложения
runtime/ файлы сгенерированные во время работы консольного приложения
backend
assets/ ресурсы. например, JavaScript, CSS
config/ конфигурации бэкэнда
controllers/ контроллеры
models/ специфичные модели для backend
runtime/ файлы сгенерированные во время работы backend-приложения
views/ файлы представлений
web/ входной скрипт бэкэнда и вэб-ресурсы
frontend
assets/ ресурсы. например, JavaScript, CSS
config/ конфигурации фронтэнда
controllers/ контроллеры
models/ специфичные модели для frontend
runtime/ файлы сгенерированные во время работы frontend-приложения
views/ файлы представлений
web/ входной скрипт фронтэнда и вэб-ресурсы
widgets/ виджеты фронтэнда
vendor/ пакеты зависимостей композера
environments/ специфичные вещи окружения
tests различные тесты приложения
codeception/ Codeception тесты
.gitignore файл со списком игнорируемых файлов для git
composer.json - файл конфигураций композера
init - скрипт инициализации окружения web-приложения
init.bat - тоже самое, но для Windows
requirements.php - скрипт проверки зависимостей Yii framework 2
yii - файл запуска консольного приложения
yii.bat - тоже самое, но для Windows
Как видим, данная структура подразумевает указание различных хостов для frontend и backend (webroot для них будет /path/to/yii-application/frontend/web и /path/to/yii-application/backend/web соответственно). Кроме того, она дает следующие преимущества:
- у каждого разработчика есть свои конфигурации;
- пароли к БД и API-ключи не попадую в репозиторий;
- есть различные окружения (development, testing, production), которые имееют различные конфигурационные файлы.
Стоит заметить, что в директории config фронтэнда, бэкэнда или консольного приложения могут содержаться файлы с суффиксом -local. Например, params-local.php. Это локальные файлы конфигураций, которые не должны попасть в git-репозиторий.
Ниже представлена схема приоритетов загрузки конфигурационных файлов приложения yii2 advanced:

