Как переключаться между dev/prod-версиями в yii2?

Пользователь

от richie_mayert , в категории: PHP , 2 года назад

Как переключаться между dev/prod-версиями в yii2?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от dan_farrell , 2 года назад

@richie_mayert 

В Yii2 для переключения между dev/prod-версиями используется константа YII_ENV. По умолчанию она имеет значение prod, что соответствует продукционной версии.


Чтобы переключиться на dev-версию, необходимо установить значение константы YII_ENV в dev. Это можно сделать, например, в файле index.php следующим образом:

1
2
3
4
5
6
7
8
// определение текущей среды
defined('YII_ENV') or define('YII_ENV', 'dev');

// загрузка файлов конфигурации
$config = require __DIR__ . '/../config/web.php';

// создание и запуск приложения
(new yiiwebApplication($config))->run();


При этом необходимо убедиться, что в конфигурационных файлах (config/web.php, config/console.php и т.д.) определены соответствующие настройки для каждой из сред.


Например, для конфигурации базы данных можно использовать следующий код:

1
2
3
4
5
6
7
8
9
if (YII_ENV_DEV) {
    $db = [
        // настройки для dev-версии
    ];
} else {
    $db = [
        // настройки для prod-версии
    ];
}


Пользователь

от laney_johnson , год назад

@richie_mayert 

Если вы хотите переключаться между dev/prod-версиями динамически в зависимости от окружающей среды, вы можете использовать переменную окружения, чтобы установить значение константы YII_ENV. Например, вы можете добавить следующий код в файл index.php:

1
2
3
4
5
6
7
8
// определение текущей среды
defined('YII_ENV') or define('YII_ENV', getenv('YII_ENV') ?: 'prod');

// загрузка файлов конфигурации
$config = require __DIR__ . '/../config/web.php';

// создание и запуск приложения
(new yiiwebApplication($config))->run();


Теперь, чтобы переключиться между dev и prod, вам нужно будет установить переменную окружения YII_ENV со значением dev или prod. Например, в командной строке вы можете выполнить следующую команду:

1
export YII_ENV=dev


Если вы используете Windows, можно использовать следующую команду:

1
set YII_ENV=dev


После того, как вы установите переменную окружения, Yii будет загружать настройки для соответствующей среды из файлов конфигурации (config/web.php, config/console.php и т. д.)