2011-11-02 3 views
3

에 로케일 자원을 얻을. 하지만 여전히 NULL을 반환하고 내 응용 프로그램의 다른 곳에서 적용 로케일 엉 "의 젠드 기본 내 application.ini에서I로 시작하는 놀라운 일을하는 사람들의 예를 많이 볼 부트 스트랩

resources.locale.default = "nl_NL" 
resources.locale.force = true 

protected function _initLocale() 
{ 
    $locale = $this->getResource('locale'); 
    // more code 
} 

위해서 var_dump ($ 로케일)가 있지만 (_us) ".

내 application.ini에 설정된 응용 프로그램 전체 로켈에 액세스 (또는 초기화)하려면 어떻게해야합니까?

답변

4

여기서 문제는 동일한 이름 (_init 다음의 부분)을 가지고 있으므로 Bootstrap 메서드가 기본 제공 응용 프로그램 리소스를 무시한다는 것입니다.

이 대신

protected function _initLocaleMods() 
{ 
    // always bootstrap required resources 
    $this->bootstrap('locale'); 

    $locale = $this->getResource('locale'); 

    // more code 
} 
+0

들으 필을 시도,이 작품! 부트 스트랩 ('로케일')이 실제로 여기에 필요하지만, 나는 항상 자원을 부트 스트랩해야합니까? 보기, DB, 메일 등에서이 작업을 수행하지 않으며 내 application.ini 설정은 여전히 ​​다른 곳에서 가져오고 있습니다. – tihe

+0

@zensys 앱 리소스와 부트 스트랩 메소드의 순서는 보장되지 않으므로 코드가 의존하는 리소스를 사용할 준비가되어 있어야합니다. 메소드 나 커스텀 자원 플러그인이 그것들에 의존하는 경우에만 뷰, db 등을 부트 스트랩 할 것입니다. [Dependency Tracking] (http://framework.zend.com/manual/en/zend.application.theory-of-operation.html#zend.application.theory-of-operation.bootstrap.dependency-tracking)을 읽으십시오. – Phil