2009-04-28 7 views
0

내 젠드 프레임 워크 응용 프로그램에서 모듈 형 레이아웃을 사용하려고 다음과 같은 오류 받고 있어요에서 작동하도록하는 방법 : C에서 인증 :모듈은 젠드 프레임 워크

정의되지 않은 인덱스를 \ PHP \는 \ 젠드을 포함 \ 컨트롤러 \ 디스패처 \ Standard.php 라인 (385) 다음 코드는이 오류 전에 실행

: 내 부트 스트랩

if (!$this->_acl->isAllowed($role, $resource, $privilege)) { 
    $request->setModuleName('authentication'); 
    $request->setControllerName('auth'); 
    $request->setActionName('login'); 
    $request->setDispatched(false); 
} 

, 내가 가진 :

$frontController 
    ->setParam('environment', $this->environment) 
    ->setControllerDirectory(ROOT_DIR . '/controllers') 
    ->addModuleDirectory(ROOT_DIR . '/modules'); 

내 디렉토리 구조는 다음과 같습니다 이유가 작동하지 않습니다

/ application 
    /controllers 
    /models 
    /views 
    /library 
    /modules 
     /Authentication 
      /controllers 
       AuthController.php 

어떤 생각?

답변

1

대소 문자 구분? 문서에서 대/소문자 구분을 언급하지는 않았지만 모듈이있는 모든 예제에는 모듈 소문자가 모두 소문자로 표시됩니다.

내 최근의 ZF 앱은 모듈을 사용하며 디렉토리 이름은 모두 소문자입니다.

또한 경로 정의에 기본 모듈이 설정되어 있습니까?

+0

감사합니다. 피터, 그 오류 메시지를 제거했습니다.PHP 치명적 오류 : 'Zend_Controller_Dispatcher_Exception'메시지가 'C : \ PHP \에 잘못된 컨트롤러 클래스 ("Authentication_AuthController")가 포함 된 예외가 발견되었습니다 : \ Zend \ Controller \ Dispatcher \ Standard.php : 353 기본 모듈을 정의하지 않았습니다. 응용 프로그램 디렉토리 아래에 응용 프로그램 별 파일을 그대로 둘 수 있다고 생각합니다. (위의 디렉토리 구조가 잘못되었다는 것을 알았습니다. 이제 모든 폴더를 응용 프로그램의 하위 폴더로 만들었습니다). – Iain

+0

알았어 - 그냥 Controller와 반대되는 Module_Controller 규칙을 사용하여 컨트롤러 클래스의 이름을 지정해야하기 때문에 오류 메시지가 표시 되었습니까? 따라서 AuthController 대신 Authentication_AuthController를 사용하십시오. – Iain

+0

맞습니다 - 컨트롤러 이름 앞에 모듈 이름을 추가해야합니다. –

0

호기심에서 벗어난 이유는 무엇입니까? 전체 모듈을 인증 용으로 설정 한 이유는 무엇입니까? (기본 모듈 내부에서 조치를 취하는 것과는 대조적 인 이유는 무엇입니까?)

+0

안녕하세요, 저는 응용 프로그램 제네릭 기능이라고 생각하여 모듈 인증을 받았습니다. 모듈이라면 그 모듈을 모든 응용 프로그램에 드롭 할 수 있습니다. '인증'은 로그인, 로그 아웃, 비밀번호 검색 및 프로필 관리를 포함하기 때문에 오도 된 것일 수 있습니다. 어떻게 할 건데? – Iain