Содержание статьи

Gii – встроенный модуль Yii2, предназначенный для генерации кода моделей, контроллеров, CRUD и форм на основе структуры базы данных. Он работает только в режиме разработки и по умолчанию отключён в продакшн-конфигурации. Для его запуска требуется корректно установленный фреймворк Yii2 версии basic или advanced, а также доступ к файлам конфигурации приложения.
Перед включением Gii необходимо убедиться, что расширение yiisoft/yii2-gii присутствует в зависимостях проекта. В шаблоне basic оно обычно установлено сразу, а в advanced может потребоваться ручная установка через Composer. Также важно проверить параметр YII_ENV_DEV, так как модуль не будет работать при активной production-среде.
Подключение Gii выполняется через конфигурационные файлы web.php и, при необходимости, console.php. Отдельное внимание следует уделить настройке списка разрешённых IP-адресов, иначе доступ к интерфейсу будет заблокирован. После корректной настройки модуль открывается по URL /index.php?r=gii или /gii при включённом pretty URL.
Проверка версии Yii2 и наличия расширения Gii

Для начала необходимо определить установленную версию Yii2. Это можно сделать через консоль, выполнив команду php yii —version в корне проекта. Корректная работа Gii поддерживается во всех актуальных версиях Yii2, однако в устаревших сборках возможны проблемы с совместимостью PHP или зависимостями.
Далее следует проверить, подключено ли расширение yiisoft/yii2-gii. Откройте файл composer.json и убедитесь, что пакет присутствует в разделе require-dev. Если запись отсутствует, Gii не установлен и его интерфейс не будет доступен даже при правильной настройке конфигурации.
Также важно проверить, что проект запущен в среде разработки. Значение константы YII_ENV должно быть равно dev. В противном случае Yii2 игнорирует модули из require-dev, и Gii не будет инициализирован.
Установка Gii через Composer в существующем проекте

В существующем проекте Yii2 установка Gii выполняется через Composer без изменения базовой структуры приложения. Перед началом убедитесь, что доступ к Composer осуществляется из корня проекта и используется конфигурация окружения dev.
Для добавления Gii выполните команду:
composer require --dev yiisoft/yii2-gii
Ключ --dev гарантирует, что пакет будет установлен только для разработки и не попадёт в production-зависимости. После установки Composer автоматически обновит файл composer.json и загрузит пакет в каталог vendor.
Далее необходимо зарегистрировать модуль Gii в конфигурации приложения. Для advanced-шаблона правки вносятся в backend/config/main-local.php, для basic – в config/web.php:
- Добавьте модуль в массив
modules - Укажите класс
\yii\gii\Module
Пример подключения:
'gii' => ['class' => 'yii\gii\Module']
Для ограничения доступа настройте параметр allowedIPs. Это предотвращает запуск генератора с неразрешённых адресов:
'allowedIPs' => ['127.0.0.1', '::1']
Если проект используется в Docker или через удалённый сервер, добавьте IP хоста вручную. Изменения вступают в силу без очистки кэша.
После завершения настройки модуль будет доступен по адресу:
/index.php?r=gii
При ошибке 403 проверьте режим приложения (YII_ENV_DEV) и список разрешённых IP. Установка считается корректной, если интерфейс Gii открывается без дополнительных зависимостей и ошибок автозагрузки.
Подключение модуля Gii в конфигурации web.php

Подключение Gii выполняется через конфигурационный файл config/web.php. Модуль должен регистрироваться только в режиме разработки, иначе он станет доступен в рабочем окружении.
Откройте файл web.php и убедитесь, что используется проверка окружения:
if (YII_ENV_DEV) { ... }
Внутри этого условия добавьте модуль Gii в массив modules:
$config['modules']['gii'] = ['class' => 'yii\gii\Module'];
Для ограничения доступа необходимо явно задать список IP-адресов. Без этого Gii может быть недоступен или, наоборот, открыт извне:
'allowedIPs' => ['127.0.0.1', '::1']
Полный пример подключения:
-
if (YII_ENV_DEV) {
$config['modules']['gii'] = [
'class' => 'yii\gii\Module',
'allowedIPs' => ['127.0.0.1', '::1'],
];
}
При работе через Docker, Vagrant или удалённый сервер добавьте внешний IP хоста вручную. Формат допускает одиночные адреса и подсети.
После сохранения файла перезапуск веб-сервера не требуется. Модуль становится доступен по маршруту /index.php?r=gii. Если используется красивый URL без index.php, путь сокращается до /gii.
При ошибке доступа проверьте значение константы YII_ENV_DEV и фактический IP клиента, который видит сервер.
Настройка доступа к Gii по IP адресу

Модуль Gii должен быть доступен только для доверенных IP-адресов. Настройка выполняется через параметр allowedIPs в конфигурации модуля.
Пример подключения в config/web.php:
-
if (YII_ENV_DEV) {
$config['modules']['gii'] = [
'class' => 'yii\gii\Module',
'allowedIPs' => ['127.0.0.1', '::1'],
];
}
Список allowedIPs может содержать:
- Одиночные IP:
'192.168.1.10' - Подсети с маской:
'192.168.1.*' - IPv6 адреса:
'::1'
Для удалённой разработки добавьте IP вашего хоста в массив. Например, если сервер видит внешний IP 203.0.113.5, добавьте его:
'allowedIPs' => ['127.0.0.1', '::1', '203.0.113.5']
Если IP клиента не указан в списке, при попытке открыть Gii будет ошибка 403. Проверяйте фактический IP через $_SERVER['REMOTE_ADDR'] для точной настройки.
Изменения вступают в силу сразу после сохранения конфигурации, перезапуск веб-сервера не требуется.
Включение Gii только для среды разработки

Модуль Gii должен быть активен исключительно в среде разработки. Это предотвращает доступ к генератору кода в production и снижает риски безопасности.
Проверка выполняется через константу YII_ENV_DEV в файле config/web.php:
if (YII_ENV_DEV) { ... }
Подключение модуля внутри условия:
-
$config['modules']['gii'] = [
'class' => 'yii\gii\Module',
'allowedIPs' => ['127.0.0.1', '::1'],
];
Для наглядного контроля можно оформить настройку в виде таблицы:
| Параметр | Описание | Пример |
|---|---|---|
| YII_ENV_DEV | Определяет режим приложения | true – разработка, false – production |
| modules[‘gii’] | Регистрация модуля Gii | 'class' => 'yii\gii\Module' |
| allowedIPs | Список IP, которым разрешён доступ | ['127.0.0.1', '::1'] |
При использовании Docker или удалённого сервера добавьте IP клиента в allowedIPs. Модуль будет активен только если YII_ENV_DEV равно true, остальные окружения игнорируют Gii.
Запуск Gii через браузер и проверка URL
После установки и настройки Gii доступ к модулю осуществляется через веб-браузер. Основной маршрут по умолчанию:
/index.php?r=gii
Если включён «красивый» URL, путь сокращается до /gii. Проверку корректности URL можно выполнить вручную, введя адрес в адресной строке браузера. При правильной настройке откроется интерфейс Gii с перечнем доступных генераторов.
Для проверки доступа учитывайте следующие моменты:
- IP клиента: должен быть указан в
allowedIPsконфигурации модуля. - Режим приложения:
YII_ENV_DEVдолжен быть true. - Маршрутизация: если используются дополнительные правила URL в
urlManager, убедитесь, что маршрутgiiне блокируется.
При ошибке 403 проверьте список разрешённых IP через $_SERVER['REMOTE_ADDR']. При ошибке 404 убедитесь, что модуль Gii зарегистрирован в web.php и Composer установил пакет.
После успешного запуска в браузере интерфейс Gii позволяет создавать модели, CRUD-контроллеры и другие компоненты, отображая все параметры генерации для выбранного модуля или таблицы базы данных.
Решение ошибки доступа Forbidden при открытии Gii

Ошибка 403 Forbidden при открытии Gii возникает из-за ограничений доступа по IP или режима приложения. Для устранения необходимо проверить конфигурацию модуля и окружение.
Пошаговое решение:
- Проверка режима разработки: убедитесь, что в
config/web.phpиспользуется условиеif (YII_ENV_DEV). В production Gii не должен быть доступен. - Настройка allowedIPs: проверьте, что IP клиента присутствует в массиве
'allowedIPs'модуля Gii. Например:'allowedIPs' => ['127.0.0.1', '::1']- Для удалённой разработки добавьте внешний IP сервера
- Проверка фактического IP: используйте
$_SERVER['REMOTE_ADDR'], чтобы определить, какой IP видит сервер. - Перезапуск веб-сервера не обязателен: изменения конфигурации вступают в силу сразу после сохранения файла.
- Проверка маршрутов: убедитесь, что правила
urlManagerне блокируют маршрут/gii.
После выполнения всех шагов ошибка Forbidden исчезает, и интерфейс Gii становится доступен через браузер по адресу /index.php?r=gii или /gii при включённых «красивых» URL.
Отключение Gii после завершения разработки

После завершения разработки доступ к Gii необходимо закрыть, чтобы исключить возможность генерации кода в production. Для этого модуль удаляется или отключается в конфигурации приложения.
В config/web.php закомментируйте или удалите подключение модуля Gii:
-
// $config['modules']['gii'] = [
// 'class' => 'yii\gii\Module',
// 'allowedIPs' => ['127.0.0.1', '::1'],
// ];
Если проект использует проверку YII_ENV_DEV, убедитесь, что переменная окружения для production установлена в false. Это автоматически предотвращает активацию Gii.
Для полного исключения Gii из production можно удалить пакет через Composer:
composer remove --dev yiisoft/yii2-gii
После отключения модуль становится недоступным по URL /gii, а попытка открыть его вызывает ошибку 404. Это гарантирует защиту кода и базы данных от случайного изменения.
Вопрос-ответ:
Как установить Gii через Composer в существующем проекте Yii2?
Для установки Gii откройте терминал в корне проекта и выполните команду composer require --dev yiisoft/yii2-gii. Параметр --dev гарантирует установку только для разработки. После установки в каталоге vendor появится пакет Gii, и файл composer.json будет обновлён. Следующим шагом нужно подключить модуль в конфигурации приложения, указав его класс \yii\gii\Module и список разрешённых IP.
Как правильно подключить Gii в файле web.php?
Откройте config/web.php и внутри проверки if (YII_ENV_DEV) добавьте массив modules['gii'] с ключом class и значением 'yii\gii\Module'. Также укажите allowedIPs, например: ['127.0.0.1', '::1']. После сохранения файла модуль Gii будет доступен только в среде разработки и откроется по адресу /index.php?r=gii или /gii при включённых красивых URL.
Почему при открытии Gii в браузере появляется ошибка 403 Forbidden?
Ошибка 403 возникает, когда IP клиента отсутствует в списке allowedIPs или приложение работает не в режиме разработки. Для устранения проверьте, что YII_ENV_DEV равен true и добавьте фактический IP в массив allowedIPs. IP можно определить через $_SERVER['REMOTE_ADDR']. Также убедитесь, что маршрут /gii не блокируется правилами urlManager.
Как запустить Gii через браузер и проверить правильность URL?
После подключения модуля откройте браузер и введите адрес /index.php?r=gii. Если включены красивые URL, используйте /gii. При правильной настройке откроется интерфейс генераторов с доступными инструментами: модели, CRUD-контроллеры, формы. Если отображается ошибка 404, проверьте регистрацию модуля и маршруты, если 403 — проверьте IP и режим приложения.
Как отключить Gii после завершения разработки?
Чтобы закрыть доступ к Gii в production, закомментируйте или удалите его подключение в config/web.php. Можно также удалить пакет через Composer командой composer remove --dev yiisoft/yii2-gii. После этих действий попытка открыть /gii вызовет ошибку 404, что защищает проект от случайного изменения кода и базы данных.
