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와 유사합니다.