Как включить gii в yii2 advanced
03-12-2018 
        Сразу хочу предупредить: генерация кода будет доступна только из админки (т.к. досутп к ней из фронтенда не совсем безопасное занятие).
Идем в backend\config\ и открываем main-local.php, там ищем такой код:
if (!YII_ENV_TEST) {
    // configuration adjustments for 'dev' environment
    $config['bootstrap'][] = 'debug';
    $config['modules']['debug'] = [
        'class' => 'yii\debug\Module',
    ];
    $config['bootstrap'][] = 'gii';
    $config['modules']['gii'] = [
        'class' => 'yii\gii\Module',
    ];
}
Если кода нет, копируем и вставляем перед return $config;. Если он есть, но закоментирован - раскоментируй.
Разберемся что тут написано. Сначала мы спрашиваем у константы YII_ENV_TEST true она или не true. Чтобы понимать откуда растут ноги, откройте файлик backend\web\index.php. Найдите строку 
defined('YII_ENV') or define('YII_ENV', 'dev');
Значение константы YII_ENV может принимать другие значения:
- prod: окружение production. YII_ENV_PROD установлена в true.
- dev: окружение development. YII_ENV_DEV установлена в true.
- test: окружение testing. YII_ENV_TEST установлена в true.
Соответственно, если настройка конфигурации инициализирована для среды dev, тогда мы попадем в наше условие if().
Всё, Gii включили =) можно проверять. Открываем http://что-то-там/admin/index.php?r=gii (или http://что-то-там/admin/gii если увас настроены ЧПУ).
Дальше мы можем столкнуться с ошибкой Forbidden (#403). Исправляем
Исправляем ошибку Forbidden (#403) при включении Gii в Yii2 advanced
Если столкнулся с ошибкой 403, значит все модули подключены и генератор кода "виден". Но у нас пока нет к нему доступа. Чтобы исправить эту ошибку открываем файл backend\config\main-local.php и в массив $config['modules']['gii'] дописываем элемент 'allowedIPs' => ['*'],. После этих манипуляций код будет выглядить следующим образом:
    $config['bootstrap'][] = 'gii';
    $config['modules']['gii'] = [
        'class' => 'yii\gii\Module',
        'allowedIPs' => ['*'],
    ];
Элемент массива allowedIPs указывает на диапазон IP адресов, которым можно работать с Gii. Значение '*' указывает на то, что все IP'шники могут работать с Gii. Это не совсем безопасно (хотя мы отсеяли кучу народа, у которго нет досутпа в админку). Значением allowedIPs лучше указывать свой IP (твой IP можешь тут).
Исправляем ошибку Not Found (#404) при включении Gii в Yii2 advanced
Ошибка 404 может возникнуть по двум причинам:
1. Если в файле backend\web\index.php константе YII_ENV присваивается значение test.
В этом случае меняем значение на dev или prod (первый предпочтительнее если вы разрабатываете сайт).
2. Если в файле backend\config\main-local.php нет (или он закоментирован) кода 
if (!YII_ENV_TEST) {
    // configuration adjustments for 'dev' environment
    $config['bootstrap'][] = 'debug';
    $config['modules']['debug'] = [
        'class' => 'yii\debug\Module',
    ];
    $config['bootstrap'][] = 'gii';
    $config['modules']['gii'] = [
        'class' => 'yii\gii\Module',
        'allowedIPs' => ['*'],
    ];
}
В этом случае просто добавляем (раскомментируем) код.
ТЕГи: yii2 Программирование

