1 Отредактировано Кирилл (03.11.2015 15:46:13)

Тема: Как правильно разделить среду разработки и боевой сервер?

Добрый день,

Столкнулся с тем, что в разработке используются другие настройки БД. Пока решил вот какой правкой файла config.auto.php в корне сайта:

if ($_SERVER['SERVER_NAME'] == 'dev.local') {
   // Development environment
return array (
  'INSTALLED' => true,
  'FOLDER' => NULL,
  'DB_INSTALL_MODE' => false,
  'DB_HOST' => '127.0.0.1',
  //.. прочие настройки для локальной разработки
);
} else {
  // Production environment
  return array (
  //тут - настройки боевого сервера
);
}

Это позволяет свободно обновлять файлы на боевой машине (rsync или выгрузка из системы конторля версий), без страха поломать боевые настройки.
"Внимание, вопрос": насколько корректен такой подход? Что можно улучшить и/или автоматизировать?

Повысить оценку Понизить оценку

2

Re: Как правильно разделить среду разработки и боевой сервер?

Альтернативную конфигурацию можно задавать в файле _local_settings.php, который вы можете держать на локальной машине в корне вашего сайта и не выгружать на production. В _local_settings.php можно перегрузить все свойства  \Setup, (как известно /config.auto.php лишь инициализирует значения статических свойств класса \Setup)

Пример _local_settings.php:

<?php
\Setup::DB_HOST = 'localhost';
\Setup::DB_NAME = 'dbname';
\Setup::DB_USER = 'dbuser';
\Setup::DB_PASS =  'dbpass';
\Setup::DB_TABLE_PREFIX = 'dbprefix';

//Всегда отображать исключения
//\Setup::$DETAILED_EXCEPTION = true;

//Всегда проверять шаблон на предмет модификации
//\Setup::$SM_COMPILE_CHECK = true;

//Всегда отключенный кэш
//\Setup::$CACHE_ENABLED = false;

Полный список всех свойств, доступных к настройке можно найти в классе \RS\Config\AbstractSetup

Повысить оценку Понизить оценку

Re: Как правильно разделить среду разработки и боевой сервер?

А зачем? Добавьте просто конфиг в gitignore и пусть лежат на каждой машине свои настройки. При копировании копируйте все кроме этого файла, а если из гита то он не пострадает.

Повысить оценку Понизить оценку