Как умные люди организуют конфигурационный файл в сложных проектах на PHP?

jabbaxatt

Добрый модератор
Регистрация
21 Янв 2009
Сообщения
902
Реакции
432
Собственно возникли 2 вопроса.

1) Как правильно организовывать конфиг (конфигурационный файл для разработчиков), с учётом того что потом проект могут вести не я а другие люди?
2) Что нужно выносить в этот конфиг по дефолту

Свой вариант ниже пишу, просто возникли сомнения "а то ли я делаю". В общем, интересно как это делают крутые перцы и зачем они так делают :D

Пока сделал так: в корне создаётся файл superconfig.php который внутри примерно такой:
PHP:
<?
return array(
    'db_host' => 'localhost',
    'db_user' => 'root',
    'db_password' => '',
    'domen' => 'mysite.ru',
    'sitename'    => 'Мой супер-пупер сайт',
    'lang'     => 'ru',
    'dir_root' => '/www/site.ru/'
);
?>

И в любом месте вызываю так:
PHP:
<?
$config = include('superconfig.php');
Echo $config['sitename'];
?>

3) Принято ли выносить в такой конфиг вещи типа "адреса папок с css, js, картинками, специальными картинками и т.д.?

4) Можно ли выносить в конфиг иногда используемые вещи типа
'tek_url' => $_SERVER['REQUEST_URI'], или так не делается, кому надо тот сам вызовет.
 
Последнее редактирование:
А Echo с большой буквы? :)
 
А Echo с большой буквы? :)

Про стандарты понятного кода и про ведение документации - тоже можно мне материальчиков подкинуть, опытом поделиться и советов дать :)
 
В движке Discuz x есть переменная, доступна из любой части двига $_G и вот в ней есть все. Пути к файлам, конфиги к бд, даже супер глобальные переменные есть. Удобно очень скажу от себя. В конфиг можно выносить все что нужно. почему нет..
 
По поводу стандартов кодирования - можно на сайте зенд_фреймворка почитать:
Для просмотра ссылки Войди или Зарегистрируйся

А по поводу конфига:
Либо так (я делаю так же:)), либо через ini.
Вносить... Да всё, что угодно:).
Пути - неплохо бы тоже выносить, особенно - если есть вероятность их изменения.
 
У нас на проекте в папке конфиг подпапка sites, в которой лежат конфиги для разных доменов.
Есть лайв, есть тестовый общедоступный для разработчиков, ну и у каждого локальный на пк поднят - в итоге довольно удобно.
PHP:
if (!isset($hostname)) {
  if (!isset($_SERVER) || !isset($_SERVER["HTTP_HOST"]) || $_SERVER["HTTP_HOST"] == "") {
    $hostname = getenv("HOSTNAME");
  } else {
    $hostname = $_SERVER["HTTP_HOST"];
  }
}
if (!isset($hostname)) {
  $hostname = 'default_domain.com';
}

$conf_file = dirname(__FILE__) . '/sites/' . $hostname . '.conf.php';
if (file_exists($conf_file)) {
  $config = include($conf_file);
} else {
 //show error
}
 
У меня вообще config.php формируется прочитав ini ))
Могу подкинуть скриптик для работы с ini
 
У меня вообще config.php формируется прочитав ini ))
Могу подкинуть скриптик для работы с ini
А смысл этого действия? Мне кажется, что проще\удобнее\понятнее сразу в PHP.
 
умные люди юзают фреймворк вроде Silex'а и вышеупомянутый Symfony Config
 
Назад
Сверху