Плюсы / минусы, когда анализировать файл INI - PullRequest
1 голос
/ 26 апреля 2011

Я хотел бы знать, нормально ли разбирается INI-файл в конструкторе или есть более оптимальный процесс?

Итак, мой текущий процесс - передача файла INI при создании экземпляра класса следующим образом:

include_once('/path/to/class.php');
$bar = new Foo('/path/to/class.ini');
$bar->runProcess();

Итак, в моем конструкторе классов есть что-то вроде этого:

public function __construct($ini_file) {
    $ini = parse_ini_file($ini_file, true);

    // Then set all the variables I need here from the INI
    $this->variable_setting = $ini['ini_section']['ini_variable'];   
}

Ответы [ 2 ]

3 голосов
/ 26 апреля 2011

Делать это в конструкторе нормально. Однако, если вам это не всегда нужно, вы можете сделать это в отдельном методе, который вызывается только тогда, когда файл ini действительно необходим.

0 голосов
/ 26 апреля 2011

Я бы предпочел создать конкретный интерфейс с параметрами конфигурации, которые вы хотите использовать.Т.е.,

public function __construct($someConfigValue, $anotherConfigValue)
{
   $this->_configValue1 = $someConfigValue;
   $this->_configValue2 = $anotherConfigValue;
}

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

public function __construct($config)
{
   $this->_configValue1 = $config['someConfigValue'];
   $this->_configValue2 = $config['someConfigValue'];
}

Причина, по которой я рекомендую этоОн переносит ответственность за загрузку конфигураций за пределы класса (что, как я полагаю, ваш класс не имеет никакого отношения к загрузке конфигурации внутри себя) и создает более логичный интерфейс.Кроме того, он отделяет файлы конфигурации непосредственно от вашего класса.

...