2012-12-10 4 views
0

젠드 프론트 컨트롤러 플러그인이 있습니다. 요청 개체와 서비스 계층에 따라 다르지만 응용 프로그램간에 재사용 할 수는 없습니다. 따라서 응용 프로그램의 컨트롤러 디렉토리에있는 Plugins 디렉토리에 속해 있다고 생각합니다. 이 말이 맞습니까?이 젠드 컨트롤러 플러그인을 어디에서 어떻게 찾을 수 있습니까?

둘째로, Zend에게이 디렉토리의 플러그인을 어떻게 자동로드 할 수 있습니까?

감사합니다.

답변

1

나는 플러그인이 plugins 폴더에 있어야한다는 것에 동의한다. 나는 보통 앱의 사용자 정의 네임 스페이스를 사용하여 부트 스트랩하는 동안 리소스 오토로더의 인스턴스를 설정했다. 예 : 앱의 네임 스페이스가 'Bob'이라고 말하면됩니다.

protected function _initAutoloader() 
{ 
    $autoloader = Zend_Loader_Autoloader::getInstance(); 

    $resourceAutoloader = new Zend_Loader_Autoloader_Resource(array(
     'basePath' => APPLICATION_PATH, 
     'namespace' => 'Bob', 
     'resourceTypes' => array(
      'model' => array(
       'path' => 'models/', 
       'namespace' => 'Model' 
      ), 
      'form' => array(
       'path' => 'forms/', 
       'namespace' => 'Form' 
      ), 
      'plugin' => array(
       'path' => 'plugins/', 
       'namespace' => 'Plugin' 
      ), 
      'service' => array(
       'path' => 'services/', 
       'namespace' => 'Service' 
      ) 
     ) 
    )); 
    $autoloader->pushAutoloader($resourceAutoloader); 

    return $autoloader; 
} 

필요에 따라 리소스 유형을 추가하거나 제거하십시오. 그런 다음 플러그인을 application/plugins/Whatever.php에 넣으면 정상적으로 자동로드됩니다.

관련 문제