2012-10-26 2 views
1

내 클래스 중 하나에서 정의 된 여러 상수가 있는데 내 application.ini에서이 상수를 사용하고 싶습니다. 가능합니까? 이 작동하지 않는 것Zend_Config_Ini application.ini의 클래스 상수 사용

logger.main.level = \My\App\Logger::WARNING 

, 그냥 내가 PHP의 parse_ini_file() 기능은 클래스 공간에서 세계 공간에서 상수에 대한 액세스 권한이 아니라 믿고 문자열

답변

2

application.ini에서 상수 값을 사용하려면 /public/index.php 파일에 상수를 정의해야합니다 (APPLICATION_PATH 참조).

당신이 코드에서 깔끔하게하고 싶다면 로그 값을 수동으로 숫자 값과 함께 사용하면된다. (상수는 Zend_Log처럼 숫자로 가정한다.)이 값은 변경되거나 할 가능성이 높기 때문에 의 index.php 당신이 logger.main.level = LOGLEVEL_WARNING

처럼 application.ini 파일에서 사용할 수있을 것입니다 LOGLEVEL_WARNING 같은 새로운 상수라는 것을 (당신이 다음 클래스의 정적 상수의 값을 얻을 수있다)를 정의 내 선택이 될 것이다 파일의 숫자 값은 다음과 같습니다.

resources.log.stream.writerName = "Stream" 
resources.log.stream.writerParams.stream = APPLICATION_PATH "/../data/logs/application_" DATESTAMP ".log" 
resources.log.stream.writerParams.mode = "a" 
resources.log.stream.filterName = "Priority" 
resources.log.stream.filterParams.priority = 4 

내 index.php에 정의한 상수 인 APPLICATION_PATHDATESTAMP을 살펴보십시오.

2

로 구문 분석합니다.

.ini 파일에 My_Class::MYCONST 또는 My\Class::MYCONST을 사용할 수 없습니다.