Где и как хранить конфиг сайта?

Пишу свой сайт (информационный портал + загрузки + форум).
Возник вопрос - где и в каком виде хранить глобальные настройки и настройки модулей (статьи, загрузки, юзеры и т. п.)? Например, название сайта (строка), всяческие флаги о включении/выключении (булево значение), списки поддерживаемых форматов (массив), а также числовые значения.
Насколько понимаю, если хранить это всё в ini, то придётся потом все значения очень серьёзно парсить, чтобы получить PHP-массив например.
Есть какой-то простой способ хранить все значения с типизацией? И как вообще принято у современных движков на ООП? Может PHP-файл с глобальными константами? Или класс с публичными свойствами?
Мне вот знакомый программист (на C# правда пишет) говорит, что обычно это внешний файл типа ini, и класс Конфигуратор, который подгружает из него значения, а потом раздаёт кому нужно.
  • Вопрос задан
  • 2081 просмотр
Решения вопроса 1
27cm
@27cm
TODO: Написать статус
Настройки можно хранить в массиве в php-файле. Например, так их хранят в Zend Framework проектах.

Файл config.php:
return array(
    'param_bool' => true,
    'param_str' => 'value',
    'param_array' => array(1, 2, 3),
    // ...

    // А ещё можно так:
    'param_object' => (object) array(
        'prop' => 'value', 
    ),
    'param_function' => function ($param) { /* ... */ }
);


Получение настроек в коде:
$config = include 'config.php';

Самые быстрые настройки для PHP-скриптов

Насколько понимаю, если хранить это всё в ini, то придётся потом все значения очень серьёзно парсить, чтобы получить PHP-массив например.

Делается функцией parse_ini_file(). Ничего "серьёзного".
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы