Zend_Controller

Zend_Controller 은 Zend Framework 의 MVC 시스템 의 핵심 부분 이다.MVC 는 Model - View - Controller 를 가리 키 며 응용 논리 와 표현 논 리 를 분리 하 는 디자인 모델 이다.Zend_Controller_Front Front Controller 디자인 모델 을 실 현 했 습 니 다. 모든 요청 은 front contrller (전단 컨트롤 러) 를 통 해 서로 다른 컨트롤 러 에 배포 (dispatch) 하여 처리 되 고 배포 과정 은 요청 한 URL 에 기반 합 니 다.Zend_Controller 시스템 은 확장 성 이 있 습 니 다. 기 존의 클래스 를 계승 하거나 새로운 클래스 를 작성 하여 각종 인터페이스 와 추상 류 를 실현 할 수 있 습 니 다. 플러그 인 이나 조수 류 (helper) 를 작성 하여 시스템 의 기능 을 강화 할 수 있 습 니 다.
 
컨트롤 러 를 토론 하기 전에 Zend Framework 가 HTTP 요청 을 어떻게 처리 하 는 지 이해 해 야 합 니 다.기본적으로 URL 의 첫 번 째 부분 은 컨트롤 러 에 매 핑 되 고 두 번 째 부분 은 컨트롤 러 클래스 의 Action (즉 컨트롤 러 클래스 내부 의 한 방법) 에 매 핑 됩 니 다.URLhttp://framework.zend.com/roadmap/components 서버 경 로 는?/roadmap/components, 비 춰 집 니 다.roadmap 컨트롤 러 와components  Action。action 이 존재 하지 않 으 면 index 라 는 action 을 호출 합 니 다.컨트롤 러 가 존재 하지 않 으 면 index 컨트롤 러 를 자동 으로 호출 합 니 다.(아파 치 의 이름 에 따라 자동 으로 매 핑DirectoryIndex 파일
 
Zend_Controller_Front 는 플러그 인 에이전트 (plugin broker) 를 스스로 등록 하여 플러그 인 이 촉발 하 는 각종 사건 을 관찰 할 수 있 도록 합 니 다.대부분의 경우 개발 자 들 이 전단 컨트롤 러 를 확장 하지 않 고 사이트 의 배포 과정 을 재단 할 수 있 는 기회 가 생 길 것 이다.
  Zend_Controller 의 작업 흐름 은 상당히 간단 하 다.요청 피Zend_Controller_Front 받 은 후에 호출 합 니 다.Zend_Controller_Router_Rewrite 어떤 컨트롤 러 (컨트롤 러 의 동작 과) 가 파견 되 는 지 결정 합 니 다.요청 에 컨트롤 러 와 동작 이름 을 설정 하기 위해Zend_Controller_Router_Rewrite URI 분해.Zend_Controller_Front 이어서 파견 순환 에 들 어 갔다.호출Zend_Controller_Dispatcher_Standard 요청 을 전달 하고 요청 (또는 결 성 된) 에서 지정 한 컨트롤 러 와 동작 을 파견 합 니 다.컨트롤 러 가 완 료 된 후 제어 가 되 돌 아 왔 습 니 다.Zend_Controller_Front 。컨트롤 러 가 리 셋 을 통 해 파견 상 태 를 지시 하면 다른 컨트롤 러 가 파견 되 어야 하 며 순환 이 계속 되 고 다른 파견 이 실 행 됩 니 다.그렇지 않 으 면 처리 가 끝난다.
묵인 행위
기본적으로 전단 컨트롤 러 는 ErrorHandler 플러그 인 을 불 러 오고 ViewRenderer 동작 도 우 미 를 불 러 옵 니 다. 컨트롤 러 의 오류 처리 와 보기 렌 더 링 을 간소화 하기 위해 서 입 니 다.
필요 하면 비활성화ErrorHandler, 호출dispatch() 다음 코드 를 실행 하기 전에:
// Disable the ErrorHandler plugin:
$front->setParam('noErrorHandler', true);
            

필요 하면 비활성화ViewRenderer, 호출dispatch() 다음 코드 를 실행 하기 전에:
// Disable the ViewRenderer helper:
$front->setParam('noViewRenderer', true);

 
기본적으로 View Renderer 가 사 용 됩 니 다.이것 은 action 방법 을 간단하게 정의 하면 해당 하 는 View 스 크 립 트 를 자동 으로 지정 합 니 다. action 에서 내용 을 직접 출력 할 수 있 습 니 다.기본 적 인 상황 에서 우 리 는 Zend 를 사용한다.View 는 MVC 개발 의 표현 층 부분 으로ViewRenderer 컨트롤 러 의 이름 (예 를 들 어 index) 과 현재 action 의 이름 (예 를 들 어 index) 에 따라 어떤 템 플 릿 파일 을 사용 할 지 결정 합 니 다.기본적으로 템 플 릿 파일 은. html 를 확장자 로 사용 합 니 다.즉, 상례 에서 우 리 는 사용 할 것 이다.index/index.phtml 템 플 릿 파일.그리고ViewRenderer 자동 가설views 디 렉 터 리 와 컨트롤 러 디 렉 터 리 는 등급 이 같 고 그림 의 기본 디 렉 터 리 로 서 실제 템 플 릿 파일 은views/scripts/ 하위 디 렉 터 리 아래.왜냐하면 저희 템 플 릿 파일 은...application/views/scripts/index/index.phtml
 
$front = Zend_Controller_Front::getInstance();
$front->setControllerDirectory('../application/controllers');
/**
$front->setControllerDirectory(array(
    'default' => '../application/controllers',
    'blog'    => '../modules/blog/controllers',
    'news'    => '../modules/news/controllers',
));
*/
 
요청 대상:
 
특정한 초 전역 변수 도 특정한 방법 으로 접근 할 수 있다. 예 를 들 어$_POST['user'] 요청 대상 을 호출 할 수 있 는getPost('user') 방문,getQuery() 획득 가능$_GET 원소,getHeader() 요청 메시지 헤드 를 가 져 올 수 있 습 니 다.

좋은 웹페이지 즐겨찾기