Где сохранить настройки отображения веб-страницы?(PHP / XML / JSON / INI) - PullRequest
1 голос
/ 17 ноября 2011

У меня есть небольшой класс Templating, который хранит все настройки внутри класса php.

Это следующие настройки: стили css, сценарии js, метатеги и заголовки для каждой страницы.(Например, для index.php мне нужны некоторые js-скрипты, но для contacts.php - другие js-файлы).

Редактировать эти данные конфигурации не очень удобно, поскольку они находятся в частных свойствахкласс, и во время редактирования программист может ошибаться в коде PHP).

Это хорошая идея, чтобы сохранить эти данные конфигурации во внешних файлах?XML / JSON / INI?Будет ли это замедлять рендеринг сайта?

Ответы [ 2 ]

3 голосов
/ 17 ноября 2011

использование файлов .ini - отличная функция в PHP:

class Template {
    private $config;
    public function __construct() {
        $this->config = parse_ini_file('templates.ini');
    }
    public function fetch() {
        $this->config['default_dir']; // example
    }
}

Согласно вашему комментарию - загрузка идет не так быстро. Но вы всегда можете кэшировать INI-файлы в памяти:

class IniFiles {
    private static $_files = Array();
    public static function parse($file) {
        if(isset(self::$_files[$file])) return self::$_files[$file];
        self::$_files[$file] = parse_ini_file($file);
        return self::$_files[$file];
    }
}

class Template {
    private $config;
    public function __construct() {
        $this->config = IniFiles::parse('templates.ini');
    }
    public function fetch() {
        $this->config['default_dir']; // example
    }
}

Теперь это идеальное решение. :)

2 голосов
/ 17 ноября 2011

Стоит ли хранить эти данные конфигурации во внешних файлах?

Да, это хорошая идея, обычно это файлы конфигурации.

Xml / JSON / ини?

Выберите все, что соответствует вашим потребностям и предпочтениям.

Будет ли это замедлять рендеринг сайта?

Нет рендеринга, не связанного с ним, код рендеринга не будет изменен.

...