Zend 프레임 워크-컨트롤러
앞서 논의했듯이 controllerZend MVC 프레임 워크에서 중요한 역할을합니다. 애플리케이션의 모든 웹 페이지는 컨트롤러가 처리해야합니다.
Zend MVC 프레임 워크에서 컨트롤러는 Zend / Stdlib / DispatchableInterface를 구현하는 개체입니다. 그만큼DispatchableInterface 단일 방법이 있습니다. dispatch, 가져옵니다 Request 입력으로 개체, 일부 논리를 수행하고 반환 Response 출력으로 객체.
dispatch(Request $request, Response $response = null)
"Hello World"를 반환하는 Controller 객체의 간단한 예는 다음과 같습니다.
use Zend\Stdlib\DispatchableInterface;
use Zend\Stdlib\RequestInterface as Request;
use Zend\Stdlib\ResponseInterface as Response;
class HelloWorld implements DispatchableInterface {
public function dispatch(Request $request, Response $response = null) {
$response->setContent("Hello World!");
}
}
그만큼 DispatchableInterface기본이며 높은 수준의 컨트롤러를 작성하려면 다른 많은 인터페이스가 필요합니다. 이러한 인터페이스 중 일부는 다음과 같습니다.
InjectApplicationEventInterface − 이벤트 주입에 사용 (Zend EventManager)
ServiceLocatorAwareInterface − 서비스를 찾는 데 사용 (Zend ServiceManager)
EventManagerAwareInterface − 이벤트 관리 (Zend EventManager)에 사용
이러한 점을 염두에두고 Zend 프레임 워크는 이러한 인터페이스를 구현하는 많은 기성 컨트롤러를 제공합니다. 가장 중요한 컨트롤러는 다음과 같습니다.
AbstractActionController
AbstractActionController (Zend / Mvc / Controller / AbstractActionController)는 Zend MVC 프레임 워크에서 가장 많이 사용되는 컨트롤러입니다. 일반적인 웹 페이지를 작성하는 데 필요한 모든 기능이 있습니다. 경로 (라우팅은 요청 URL을 컨트롤러 및 해당 메서드 중 하나와 일치 함)가action. 일치하면 컨트롤러가 작업 이름을 따서 명명 된 메서드를 호출합니다.
예를 들어, 경로가 test 일치하고 경로, test 보고 hello 행동을 위해 helloAction 메소드가 호출됩니다.
우리를 쓰자 TutorialController 사용 AbstractActionController.
라는 새 PHP 클래스를 만듭니다. TutorialController 확장하여 AbstractActionController 그리고 그것을 module/Tutorial/src/Controller/ 예배 규칙서.
설정 Tutorial\Controller 네임 스페이스로.
쓰기 indexAction 방법.
반환 ViewModel 의 개체 indexAction방법. 그만큼ViewModel object는 컨트롤러에서 뷰 엔진으로 데이터를 보내는 데 사용됩니다. 다음 장에서 살펴 보겠습니다.
전체 코드 목록은 다음과 같습니다.
?php
namespace Tutorial\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
class TutorialController extends AbstractActionController {
public function indexAction() {
return new ViewModel();
}
}
우리는 성공적으로 새로운 TutorialController.
AbstractRestfulController
AbstractRestfulController (Zend \ Mvc \ Controller \ AbstractRestfulController)는 HTTP를 검사합니다. method HTTP 메소드를 고려하여 작업 (메소드)과 일치합니다.
예를 들어 GET HTTP 메서드가있는 요청은 getList() 방법 또는 get() 방법, 경우 id 매개 변수가 요청에 있습니다.
AbstractConsoleController
AbstractConsoleController (Zend \ Mvc \ Controller \ AbstractConsoleController)는 브라우저 대신 콘솔 환경에서만 실행된다는 점을 제외하면 AbstractActionController와 유사합니다.