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

Тема в разделе "Как сделать...", создана пользователем jabbaxatt, 12 авг 2014.

  1. jabbaxatt

    jabbaxatt Добрый модератор

    Moderator
    Регистр.:
    21 янв 2009
    Сообщения:
    878
    Симпатии:
    411
    Собственно возникли 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'], или так не делается, кому надо тот сам вызовет.
     
    Последнее редактирование: 12 авг 2014
    Siverus нравится это.
  2. Sunday

    Sunday

    Регистр.:
    13 дек 2009
    Сообщения:
    726
    Симпатии:
    315
    А Echo с большой буквы? :)
     
  3. jabbaxatt

    jabbaxatt Добрый модератор

    Moderator
    Регистр.:
    21 янв 2009
    Сообщения:
    878
    Симпатии:
    411
    Про стандарты понятного кода и про ведение документации - тоже можно мне материальчиков подкинуть, опытом поделиться и советов дать :)
     
  4. SocMaster

    SocMaster aka Hakerok

    Регистр.:
    26 июл 2011
    Сообщения:
    202
    Симпатии:
    47
    В движке Discuz x есть переменная, доступна из любой части двига $_G и вот в ней есть все. Пути к файлам, конфиги к бд, даже супер глобальные переменные есть. Удобно очень скажу от себя. В конфиг можно выносить все что нужно. почему нет..
     
  5. swerwer

    swerwer Создатель

    Регистр.:
    21 окт 2012
    Сообщения:
    10
    Симпатии:
    2
    По поводу стандартов кодирования - можно на сайте зенд_фреймворка почитать:
    http://framework.zend.com/manual/1.12/ru/coding-standard.html

    А по поводу конфига:
    Либо так (я делаю так же:)), либо через ini.
    Вносить... Да всё, что угодно:).
    Пути - неплохо бы тоже выносить, особенно - если есть вероятность их изменения.
     
    jabbaxatt нравится это.
  6. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.403
    Симпатии:
    1.183
    У нас на проекте в папке конфиг подпапка 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
    }

     
    jabbaxatt и Шумадан нравится это.
  7. xaocbozzz

    xaocbozzz Писатель

    Регистр.:
    31 окт 2011
    Сообщения:
    2
    Симпатии:
    0
    У меня вообще config.php формируется прочитав ini ))
    Могу подкинуть скриптик для работы с ini
     
  8. jabbaxatt

    jabbaxatt Добрый модератор

    Moderator
    Регистр.:
    21 янв 2009
    Сообщения:
    878
    Симпатии:
    411
    А смысл этого действия? Мне кажется, что проще\удобнее\понятнее сразу в PHP.
     
  9. NSMuffin

    NSMuffin Писатель

    Регистр.:
    9 дек 2013
    Сообщения:
    3
    Симпатии:
    0
  10. vasyap

    vasyap Писатель

    Регистр.:
    20 июл 2012
    Сообщения:
    1
    Симпатии:
    0
    умные люди юзают фреймворк вроде Silex'а и вышеупомянутый Symfony Config