【问题标题】:Pros/Cons of when to parse a INI file何时解析 INI 文件的优缺点
【发布时间】:2011-04-26 13:43:21
【问题描述】:

想知道在构造函数中解析INI文件是ok还是有更优化的流程?

所以我当前的过程是在实例化类的同时传递 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'];   
}

【问题讨论】:

    标签: php optimization configuration initialization ini


    【解决方案1】:

    在构造函数中这样做很好。但是,如果您并不总是需要它,您可能希望在单独的方法中执行此操作,该方法仅在实际需要 ini 文件时调用。

    【讨论】:

    • 如果配置不正确,我喜欢退出进程。
    • 这种情况下抛出异常
    【解决方案2】:

    我希望使用您要使用的配置参数创建一个具体的界面。即,

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

    但是,如果您期望有很多不同的配置,那么最好将其传递给数组。

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

    我推荐这个的原因是它转移了在类之外加载配置的责任(我假设你的类与配置加载本身无关)并创建了一个更合乎逻辑的接口。另外,它将配置文件直接与您的类分离。

    【讨论】:

      猜你喜欢
      • 2012-11-18
      • 1970-01-01
      • 1970-01-01
      • 2019-03-09
      • 2010-09-29
      • 1970-01-01
      • 2011-09-04
      • 2014-09-03
      • 2015-10-12
      相关资源
      最近更新 更多