Zend_Controller
3756 단어 직장Zend레저Framework1.9
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 (즉 컨트롤 러 클래스 내부 의 한 방법) 에 매 핑 됩 니 다.URL
http://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()
요청 메시지 헤드 를 가 져 올 수 있 습 니 다.이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
양식 제출 후 제출 버튼 비활성화텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.