2012-11-10 5 views
1

이것이 작동하지 않는 이유에 대해 제 머리카락을 뽑아 냈습니다. 예를 들어 다음과 같이 컨트롤러 작업 도우미를 등록하려고합니다. 젠드 워드 프로세서, 여기에 여러 게시물과 잡다한 블로그에서 발견. 시도는 application.ini와 부트 스트랩 모두에서 이루어졌습니다.젠드 컨트롤러 액션 도우미가 없습니다.

도우미 자체는 APPLICATION_PATH에 있습니다. "/ controllers/helper". 파일 자체는 Scoping.php라고합니다. application.ini에서 appnamespace = "". "액션 도우미 이름 범위 지정하여 찾을 수 없습니다":

$this->_helper->Scoping(); 
(가) 내 컨트롤러에서 다음을 메시지와 함께 예외가 발생 호출

resources.frontController.actionhelperpaths.Helper = APPLICATION_PATH "/controllers/helpers" 
resources.frontController.plugins.Scoping = "Helper_Scoping" 

:

<?php 
class Helper_Scoping extends Zend_Controller_Action_Helper_Abstract 
{ 
    public function direct() 
    { 
     // code is here 
    } 
} 

은 우선은 application.ini에 노력

그런 다음 내 부트 스트랩에서 다음을 시도했습니다. (내가 본 다른 예제를 기반으로 "도우미"와 "도우미"를 시도했습니다) :

protected function _initActionHelpers() 
{ 
    Zend_Controller_Action_HelperBroker::addPath(
      APPLICATION_PATH . '/controllers/helpers', 
      'Helper_' 
    ); 
    Zend_Controller_Action_HelperBroker::addHelper(
     new Helper_Scoping() 
    ); 
} 

이 나는 ​​캐치되지 않는 예외가 시간,하지만 같은 생각 :

: "라인 (116)에 /Users/ppjd/Sites/dbos/application/Bootstrap.php에서 찾을 수 없습니다 'Helper_Scoping'클래스 치명적인 오류" 거기에 너무 많은 작업 예제가 있기 때문에, 나는 그것이 어리석은 뭔가를 놓친 것 같아요. 조난 신호를주십시오.

+0

도우미 클래스의 파일 이름은 무엇입니까? –

답변

0

을 경우에는 사람이 발생하는 것이다. 이 때, 여기에 마지막으로 나를 위해 일한 것입니다 : 그것은 네임 스페이스 문제였다 부트 스트랩, 나는 앞서 addHelper의 수정했다 :..

$rl = $this->getResourceLoader(); 
    $rl->addResourceTypes(array(
     // ...other namespace settings... 
     'helper' => array(
       'path'  => 'controllers/helpers', 
       'namespace' => 'Helper', 
     ), 
    )); 

모든 그 후 잘 작동 희망이 다른 사람 도움이

.

[가끔은 실제 응용 프로그램 개발보다 프레임 워크를 기교있게 만드는 데 더 많은 시간을 할애한다고 생각합니다.]

0

나는이 시도하지 않는하지만 난 도우미 클래스를 생각 (응용 프로그램 구조 내부 :. APPLICATION_PATH를 "/ 컨트롤러/헬퍼) ​​'Zend_Controller_Action_Helper_Scoping'대신 'Helper_Scoping'을해야

+0

좋아, 필사적으로 나는 그것을 시도했지만 작동하지 않는다. 보기 도우미에 이름을 붙이는 것을 이해합니다. 그러나 행동 도우미가 작동하는 방식이 아니라는 것을 확신합니다 ... 적어도 한 가지 예제가 그렇게 코딩 된 것을 보지 못했습니다. –

관련 문제