Советы PHP-разработчика

Блог содержащий короткие заметки касающиеся программирования для web.

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

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:

схема приоритетов загрузки конфигурационных файлов yii2 advanced

  • 2015-09-10 21:49:20