Добрый день!
Выкидываю проект на 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'
);
}
Есть у кого-то лучшие практики и почему такая странная реализация?
Hosting, main-local и gii
-
- Сообщения: 6
- Зарегистрирован: 2021.07.10, 13:28
Re: Hosting, main-local и gii
Файл main-local.php не хранится в гите, соответственно туда уезжают все кренделя и специфичные настройки.Обязательное подключение main-local.php, почему, зачем, не понятно, для чего тогда нужны флаги YII_ENV?
потому что надо выполнить yii initНа сервере main-local нет, выплевывается ошибка. Добавляем файл main-local на сервер, который содержит:
и этот main-local для dev окружения, а не prod
Используется в unit тестахКакой-то флаг YII_ENV_TEST, который никогда нигде не участвует.
Из коробки идет два шаблона basic и advanced, сделаны они просто для примера и быстрого старта приложения.Есть у кого-то лучшие практики и почему такая странная реализация?
PS оборачивайте код