2011-01-02 3 views
2

컨트롤러 도우미가 preDispatch 메소드를 사용하여 일부 컨트롤러에서 유사한 기능을 갖도록 만들려고합니다.젠드 컨트롤러 액션 도우미 문제가 도우미를 추가 할 수 없습니다.

오류 : 내가 추가 한 부트 스트랩에서

Fatal error: Class 'Helper_Action_Test' not found in /var/www/zend.dev/application/Bootstrap.php on line 9` 

응용 프로그램 레이아웃

/Application 
/Helpers 
    **/Actions** this is where i will save the classes 
    /Views 
/modules 
/configs 
/layouts 
/Bootstrap.php 

:

protected function _initActionHelpers(){ 
    Zend_Controller_Action_HelperBroker::addHelper(new Helper_Action_Test()); 
} 

도우미 파일에서 내가 가진 :

class Helper_Action_Test extends Zend_Controller_Action_Helper_Abstract{ 

    public function preDispatch() { 
     echo 'Test'; 
    } 

} 
,536,

부트 스탑에서이 작업을 수행 할 때 include 또는 addHelper()를 사용하여 새 클래스를 인스턴스화하는 방법과 관련이있을 수 있습니다.

include(APPLICATION_PATH.'/helpers/action/Test.php'); 
    Zend_Controller_Action_HelperBroker::addHelper(new Test()); 

아이디어가 있으십니까?

답변

0

필자가 생각한 도우미 파일 부트 스트랩 파일을 포함해야합니다. 당신은 당신이 공식 ZF의 문서 Autoloader에서

; Include path 
includePaths.library    = APPLICATION_PATH "/../library" 

; Autoloader Namespace 
autoloaderNamespaces[]    = 'Helper_' 

더 많은 정보를 원하는 것을 달성 할 수있을 것입니다 설정 파일에 다음 행을 추가하여 require_once() 그것을

0

:

이 아니면 내가 당신이 원하는 생각

+0

안녕 제프, 당신의 답장을 보내 주셔서 감사합니다. 이 경우 Helpers 폴더를 라이브러리 폴더에 넣어야합니까? – snakeyyy

+0

이렇게하면 네, 도우미를 라이브러리 폴더에 넣어야합니다. 도우미를 저장하는 방법을 사용하려면 Zend_View_Helper_HelperName 클래스를 만들고 Zend_View_Helper_Abstract 클래스를 확장하고 Public 메서드를 HelperName()이라고하고 뷰에서 $ this-> helperName()을 호출 할 수 있습니다. –

+0

이들은 다음과 같습니다. 액션 헬퍼가 있지만 액션 컨트롤러를 가져 오기 위해 Zend_Controller_Action_Helper_Abstract를 확장해야합니다. – snakeyyy

0

문제를 해결하려면 부트 스트랩의 _initAutoload()가 첫 번째 방법인지 확인하고 접두사 경로를 추가했는지 확인하십시오.

,
Zend_Controller_Action_HelperBroker::addPrefix('Helper_Action'); 

그들이의 include_path에없는 경우는 클래스에 대한 경로를 제공 끄트머리 수 있습니다

Zend_Controller_Action_HelperBroker::addPath(APPLICATION_PATH . '/helper/action/', 'Helper_Action'); 
+0

안녕 Kenye,이 오류를 계속 시도했지만, 클래스를 찾을 수 없습니다. 또한 _initAutoload 메서드 아래에서 메서드를 이동했습니다. 어디서나 Helper_Action_Test()를 인스턴스화하려고 할 때 여전히 찾을 수 없습니다 ... 예상대로 작동하지 않는 경로를 포함합니다. 다른 아이디어? – snakeyyy

+0

환경을 재현 할 수 있도록 전체 부트 스트랩 및 구성을 게시하십시오. –

+0

여기 있습니다 : http://pastebin.com/BTJvwQHP 감사합니다 Kenye! – snakeyyy

1

이 하나의 시도 :

// Action Helpers 
Zend_Controller_Action_HelperBroker::addPath(
    APPLICATION_PATH .'/controllers/helpers'); 
$hooks = Zend_Controller_Action_HelperBroker::getStaticHelper('Quote'); 
Zend_Controller_Action_HelperBroker::addHelper($hooks); 
관련 문제