2011-04-26 2 views
1

생성자에서 INI 파일을 구문 분석하는 것이 정상인지 또는 더 최적의 프로세스가 있는지 알고 싶습니까?INI 파일을 구문 분석 할 때의 장점/단점

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']; 
} 

답변

3

가에서 그 일을 내 클래스 생성자에 따라서

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

나는 이런 식으로 뭔가를 가지고 :

그래서 내 현재 프로세스는 다음과 같이 클래스를 인스턴스화하는 동안 INI 파일을 전달하는 것입니다 생성자가 좋습니다. 그러나 항상 필요하지 않은 경우 ini 파일이 실제로 필요한 경우에만 호출되는 별도의 메서드에서 수행 할 수 있습니다.

+0

뭔가 올바르게 구성되지 않은 경우 프로세스를 종료하고 싶습니다. –

+0

이 경우 예외가 발생합니다. – ThiefMaster

0

사용하려는 구성 매개 변수로 구체적인 인터페이스를 만드는 것을 선호합니다. 즉,

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

그러나 다른 구성이 많이 필요할 것으로 예상되는 경우 대신 배열을 전달하는 것이 좋습니다.

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

나는이 그것 (내가 당신의 클래스는 자체 구성로드와는 아무 상관이없는 가정) 클래스의 외부 로딩 구성의 책임을 이동하고보다 논리적 인터페이스를 생성한다 추천 이유. 또한 설정 파일을 클래스에서 직접 분리합니다.

관련 문제