Установка advanced шаблона Yii2

В фреймворке Yii2 заранее предусмотрены 2 шаблона проекта/приложения — базовый (base) и продвинутый (advanced).

Есть куча материала на просторах интернета, но я напишу тут еще раз, чтобы у меня всегда под рукой было
Вот основные его части (папки после установки):

  • backend
  • common
  • console
  • frontend

Фактически в каждой части мы можем создать свои модели, модули и т. д.

Несмотря на то, что advanced рекомендуют для проектов среднего-крупного уровня, на мой взгляд его также удобно использовать для любого уровня проектов, где есть как минимум разделение фронтенд/бэкенд и есть, например, общая Модель.
Т.е. кроме frontend и backend уже получаем настроенную часть common. Настройки из common объединяются с наст в frontend или backend. В console разместить контроллеры с кодом для первоначальной настройки и для регулярный задач, вызываемых с помощью cron (crontab).

  1. Устанавливаем composer, если еще не установлен.
  2. Если composer был только что установлен — нужно установить еще плагин

    php composer.phar global require "fxp/composer-asset-plugin:~1.1.1"

    У меня composer уже установлен и положен в /usr/local/bin/composer, поэтому мне достаточно вызывать команду composer. Как это делается описывается тут getcomposer.org

  3. Устанавливаем yii2 проект. Я выбрал advanced — повторюсь, тут уже есть разделение frontend/backend, т. е. практически два независимых приложения. Также есть common — то, что является общим и для frontend и для backend, а еще есть console — тут будут миграции и контроллеры для крона.
    Устанавливается все так:

    php composer.phar create-project yiisoft/yii2-app-advanced advanced 2.0.6

    Последний «advanced» заменяется на имя проекта (каталога в котором будет проект)

  4. Из консоли (а раз у нас установлен composer, то уже настраивался php и конкретно — php5-cli), находясь в папке проекта запускается

    ./init

    Будет выведен вопрос какое окружение (environment) выбрать – development или production.
    Выбираем development.
    При этом создаются локальные (main-local.php и params-local.php) для всех разделов приложения: frontend, backend, common, console. Эти файлы используются для development environment, добавлены .gitignore файлы в соответствующих папках и не кладутся в репозиторий.

  5. Теперь нужно настроить бд. Так как я буду использовать одну и ту же бд для фронта и бэкенда, то настройки все буду делать в common/config/main.php
    Но эти настройки будут для production environment, а для себя на локальной машине настройки бд положу в common/config/main-local.php
  6. Теперь можно запустить начальную миграцию
    ./yii migrate

    Через нее мы получаем в бд таблицы для уже идущего с yii функционала пользователей.

  7. После этого добавить разрешение для работы gii, тут уже нужно чтобы параметр прописывался для какой-то части, которая доступна для веб-сервера — в отличие от yii1 это или backend или frontend.

    Вот на конкретном примере: document root веб-сервера указывает на frontend/web и там же располагается .htaccess
    yii2 advanced project template

    Прописываю тоже в локальных настройках. А конкретно у меняв frontend/config/main-local.php
    Меняю строку

    $config['modules']['gii'] = 'yii\gii\Module';

    на

    $config['modules']['gii'] = 
    [
      'class' => 'yii\gii\Module',
      'allowedIPs' => ['*']//или 127.0.0.1 или ip virtualbox-машины в локалке или список разрешенных ip
    ];

Все. Теперь можно создавать таблицы в бд, я делаю через миграции.

Leave a Reply

Your email address will not be published. Required fields are marked *