Zend Framework - Controladores
Como se discutió anteriormente, el controllerjuega un papel importante en Zend MVC Framework. Todas las páginas web de una aplicación deben ser manejadas por un controlador.
En Zend MVC Framework, los controladores son objetos que implementan - Zend / Stdlib / DispatchableInterface. losDispatchableInterface tiene un solo método, dispatch, que obtiene el Request objeto como entrada, hacer algo de lógica y devuelve Response un objeto como salida.
dispatch(Request $request, Response $response = null)
Un ejemplo simple de un objeto Controller para devolver "Hello World" es el siguiente:
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!");
}
}
los DispatchableInterfacees básico y necesita muchas otras interfaces para escribir controladores de alto nivel. Algunas de estas interfaces son las siguientes:
InjectApplicationEventInterface - Se utiliza para inyectar eventos (Zend EventManager)
ServiceLocatorAwareInterface - Se utiliza para localizar servicios (Zend ServiceManager)
EventManagerAwareInterface - Se utiliza para gestionar eventos (Zend EventManager)
Teniendo esto en cuenta, Zend Framework proporciona muchos controladores listos para usar que implementan estas interfaces. Los controladores más importantes se explican a continuación.
ResumenAcciónControlador
AbstractActionController (Zend / Mvc / Controller / AbstractActionController) es el controlador más utilizado en Zend MVC Framework. Tiene todas las características necesarias para escribir una página web típica. Permite que las rutas (el enrutamiento coincida con la URL de solicitud con un controlador y uno de sus métodos)action. Cuando coincida, el controlador llamará a un método con el nombre de la acción.
Por ejemplo, si una ruta test se empareja y la ruta, test devoluciones hello para la acción, entonces el helloAction se invocará el método.
Escribamos nuestro TutorialController utilizando el AbstractActionController.
Crea una nueva clase PHP llamada TutorialController extendiendo el AbstractActionController y colocarlo en el module/Tutorial/src/Controller/ directorio.
Selecciona el Tutorial\Controller como el espacio de nombres.
Escribe un indexAction método.
Devuelve el ViewModel objeto de indexActionmétodo. losViewModel El objeto se utiliza para enviar datos desde el controlador al motor de visualización, que veremos en los capítulos siguientes.
La lista completa de códigos es la siguiente:
?php
namespace Tutorial\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
class TutorialController extends AbstractActionController {
public function indexAction() {
return new ViewModel();
}
}
Hemos agregado con éxito el nuevo TutorialController.
ResumenRestfulController
El AbstractRestfulController (Zend \ Mvc \ Controller \ AbstractRestfulController) inspecciona el HTTP method de la solicitud entrante y coincide con la acción (método) considerando los métodos HTTP
Por ejemplo, la solicitud con el método GET HTTP coincide con el getList() método o el get() método, si el id El parámetro se encuentra en la solicitud.
ResumenConsolaControlador
AbstractConsoleController (Zend \ Mvc \ Controller \ AbstractConsoleController) es como AbstractActionController excepto que solo se ejecuta en el entorno de la consola en lugar de en un navegador.