Zend Framework - Controladores
Conforme discutido anteriormente, o controllerdesempenha um papel importante no Zend MVC Framework. Todas as páginas da web em um aplicativo precisam ser gerenciadas por um controlador.
No Zend MVC Framework, os controladores são objetos que implementam a - Zend / Stdlib / DispatchableInterface. oDispatchableInterface tem um único método, dispatch, que obtém o Request objeto como entrada, fazer alguma lógica e retornar Response um objeto como saída.
dispatch(Request $request, Response $response = null)
Um exemplo simples de um objeto Controller para retornar “Hello World” é o seguinte -
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!");
}
}
o DispatchableInterfaceé básico e precisa de muitas outras interfaces para escrever controladores de alto nível. Algumas dessas interfaces são as seguintes -
InjectApplicationEventInterface - Usado para injetar eventos (Zend EventManager)
ServiceLocatorAwareInterface - Usado para localizar serviços (Zend ServiceManager)
EventManagerAwareInterface - Usado para gerenciar eventos (Zend EventManager)
Mantendo essas coisas em mente, o Zend Framework fornece muitos controladores prontos que implementam essas interfaces. Os controladores mais importantes são explicados a seguir.
AbstractActionController
O AbstractActionController (Zend / Mvc / Controller / AbstractActionController) é o controlador mais usado no Zend MVC Framework. Possui todos os recursos necessários para escrever uma página da web típica. Ele permite que as rotas (o roteamento corresponda ao url da solicitação a um controlador e a um de seus métodos) correspondam a umaction. Quando combinado, um método com o nome da ação será chamado pelo controlador.
Por exemplo, se uma rota test é correspondido e a rota, test retorna hello para ação, então o helloAction método será invocado.
Vamos escrever nosso TutorialController usando o AbstractActionController.
Crie uma nova classe PHP chamada TutorialController estendendo o AbstractActionController e coloque-o no module/Tutorial/src/Controller/ diretório.
Colocou o Tutorial\Controller como o namespace.
Escrever um indexAction método.
Devolver o ViewModel objeto de indexActionmétodo. oViewModel O objeto é usado para enviar dados do controlador para o mecanismo de visualização, que veremos nos capítulos subsequentes.
A lista de códigos completa é a seguinte -
?php
namespace Tutorial\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
class TutorialController extends AbstractActionController {
public function indexAction() {
return new ViewModel();
}
}
Adicionamos com sucesso o novo TutorialController.
AbstractRestfulController
O AbstractRestfulController (Zend \ Mvc \ Controller \ AbstractRestfulController) inspeciona o HTTP method da solicitação recebida e corresponde à ação (método), considerando os métodos HTTP
Por exemplo, a solicitação com o método GET HTTP corresponde ao getList() método ou o get() método, se o id parâmetro é encontrado na solicitação.
AbstractConsoleController
O AbstractConsoleController (Zend \ Mvc \ Controller \ AbstractConsoleController) é como o AbstractActionController, exceto que ele só roda no ambiente do console em vez de um navegador.