Hosting, main-local и gii

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
youra_halloween
Сообщения: 6
Зарегистрирован: 2021.07.10, 13:28

Hosting, main-local и gii

Сообщение youra_halloween »

Добрый день!

Выкидываю проект на Hosting/
Я не очень понимаю логики стандартной сборки yii2:

Файл index.php
defined('YII_DEBUG') or define('YII_DEBUG', false);
defined('YII_ENV') or define('YII_ENV', 'prod');
Устанавливаем флаги продакшен, ок:

Обязательное подключение main-local.php, почему, зачем, не понятно, для чего тогда нужны флаги YII_ENV?
$config = yii\helpers\ArrayHelper::merge(
require __DIR__ . '/../../common/config/main.php',
require __DIR__ . '/../../common/config/main-local.php',
require __DIR__ . '/../config/main.php',
require __DIR__ . '/../config/main-local.php'
);

На сервере main-local нет, выплевывается ошибка. Добавляем файл main-local на сервер, который содержит:
if (!YII_ENV_TEST) {
// configuration adjustments for 'dev' environment
$config['bootstrap'][] = 'debug';
$config['modules']['debug'] = [
'class' => \yii\debug\Module::class,
];

$config['bootstrap'][] = 'gii';
$config['modules']['gii'] = [
'class' => \yii\gii\Module::class,
];
}

Какой-то флаг YII_ENV_TEST, который никогда нигде не участвует. И на сервер загружается модуль GII, который может похерить весь проект.

Ну т.е. по факту нужно допиливать либо main-local, который на сервер деплоить нельзя либо index.php:
$config = yii\helpers\ArrayHelper::merge(
require __DIR__ . '/../../common/config/main.php',
require __DIR__ . '/../config/main.php',
);

if (YII_ENV === 'dev') {
$config = yii\helpers\ArrayHelper::merge(
$config,
require __DIR__ . '/../../common/config/main-local.php',
require __DIR__ . '/../config/main-local.php'
);
}

И еще config/main.php
$params = array_merge(
require __DIR__ . '/../../common/config/params.php',
require __DIR__ . '/params.php',

);

if (YII_ENV === 'dev') {
$params = yii\helpers\ArrayHelper::merge(
$params,
require __DIR__ . '/../../common/config/params-local.php',
require __DIR__ . '/params-local.php'
);
}

Есть у кого-то лучшие практики и почему такая странная реализация?
Аватара пользователя
SiZE
Сообщения: 2813
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Hosting, main-local и gii

Сообщение SiZE »

Обязательное подключение main-local.php, почему, зачем, не понятно, для чего тогда нужны флаги YII_ENV?
Файл main-local.php не хранится в гите, соответственно туда уезжают все кренделя и специфичные настройки.
На сервере main-local нет, выплевывается ошибка. Добавляем файл main-local на сервер, который содержит:
потому что надо выполнить yii init

и этот main-local для dev окружения, а не prod
Какой-то флаг YII_ENV_TEST, который никогда нигде не участвует.
Используется в unit тестах
Есть у кого-то лучшие практики и почему такая странная реализация?
Из коробки идет два шаблона basic и advanced, сделаны они просто для примера и быстрого старта приложения.

PS оборачивайте код
Ответить