Comments 10
Мне такого хватает
local.php
defined('LOCALHOST') or define('LOCALHOST', $_SERVER['SERVER_ADDR'] == '127.0.0.1' and $_SERVER['REMOTE_ADDR'] == '127.0.0.1');
if(LOCALHOST) {
defined('YII_DEBUG') or define('YII_DEBUG', true);
$config = dirname(__FILE__) . '/protected/config/local.php';
}
else {
defined('YII_DEBUG') or define('YII_DEBUG', false);
$config = dirname(__FILE__) . '/protected/config/main.php';
}
local.php
return CMap::mergeArray(
require(dirname(__FILE__) . '/main.php'),
array(...)
);
этого хватит если проект лежит у вас на машине, а если на dev сервере в сети?
У меня все от хоста разбирается, примерно так:
$availableHosts = ('localhost', 'development.my', 'production.com');
$host = str_replace('www.','',$_SERVER['HTTP_HOST']);
if (!in_array($host, $availableHosts)){
echo «Hacking attempt»;
exit(-1);
}
Сорри, но хабра-тегами воспользоваться не могу(
$config = dirname(__FILE__). '/protected/config/'.$host.'.php';
Константы с настройкой Debug-level и отображением ошибок настраивается тоже в конфигах хостов, и если не определены в основном конфиге main.php
Только чуть сложнее, т.к. у меня от хостов еще и абсолютные пути к исходникам Yii подхватываются
$availableHosts = ('localhost', 'development.my', 'production.com');
$host = str_replace('www.','',$_SERVER['HTTP_HOST']);
if (!in_array($host, $availableHosts)){
echo «Hacking attempt»;
exit(-1);
}
Сорри, но хабра-тегами воспользоваться не могу(
$config = dirname(__FILE__). '/protected/config/'.$host.'.php';
Константы с настройкой Debug-level и отображением ошибок настраивается тоже в конфигах хостов, и если не определены в основном конфиге main.php
Только чуть сложнее, т.к. у меня от хостов еще и абсолютные пути к исходникам Yii подхватываются
Если этого файла нет, значит конфиг — «production»
а не лучше наоборот? а то кто-нибудь случайно закоммитит
.env
и продакшен рухнет…окружение лече передавать через ENV в настройках того же nginx.
Отлично, спасибо за пример. Три дня я с Yii, а уже фанат.
Обратите внимание на Yii Boilerplate — предлагает удобные вещи «из коробки»: разделение конфигурационных файлов, структуру приложения frontend/backend, etc.
$base = require(PROTECTED_PATH . 'config/main.php');
$local = require(PROTECTED_PATH . 'config/main-local.php');
Yii::createWebApplication(CMap::mergeArray($base, $local))->run();
Все *-local.php глобально заигнорены.
Sign up to leave a comment.
Способ конфигурации проектов Yii от ГлавВеб