- Разделение файла конфигурации на несколько
- Установка значений по умолчанию и отсутствие конфиденциальных данных в файлах конфигурации, которые ДОЛЖНЫ быть включены в GIT
- Установка конфиденциальных данных и пользовательских параметров в файлах, которые игнорируются в Git
У меня есть такая настройка для проекта, созданного с Yii 1, но может быть адаптирована и для Yii2 basi c.
Yii 2 продвинутый уже имеет функциональность среды и по умолчанию игнорирует некоторые локальные конфигурационные файлы, и я думаю, что он должен быть адаптирован и использован.
В любом случае, вот пример для Yii 1:
Список файлов:
protected/config/main.php
protected/config/params.php
protected/config/custom.params.php // ignored
protected/config/import.php
protected/config/db.common.php
protected/config/db.example.php
protected/config/db.php // ignored
Содержимое protected/config/main.php
:
<?php
$params = require(dirname(__FILE__) . '/params.php');
if (file_exists(dirname(__FILE__) . '/custom.params.php')) {
$params = CMap::mergeArray($params, require(dirname(__FILE__) . '/custom.params.php'));
}
$config= array(
// ...
'import' => require(dirname(__FILE__) . '/import.php'),
'modules' => array(
// ...
),
// application components
'components' => array(
// ...
'db' => require(dirname(__FILE__) . '/db.common.php'),
),
'params' => $params,
);
return $config;
Содержимое protected/config/db.common.php
:
<?php
return CMap::mergeArray(
array(
'emulatePrepare' => true,
'enableProfiling' => true,
'enableParamLogging' => true,
'charset' => 'utf8',
'tablePrefix' => '',
),
require(dirname(__FILE__).'/db.php')
);
Содержимое protected/config/db.example.php
:
<?php
return array(
'connectionString' => 'mysql:host=127.0.0.1;dbname=yii_db',
'username' => 'root',
'password' => '',
);
Как вы его используете:
- После клонирования вашего проекта он сломается, потому что у вас нет
db.php
файла конфигурации - Так что вы скопируйте / вставьте
db.example.php
в db.php
и настройте его - При желании вы можете создать файл
custom.params.php
, если хотите настроить параметры текущего приложения локально - В
db.commpn.php
у вас есть по умолчанию для компонента db, и в db.php
у вас есть конфиденциальные данные