zend mac how framework for dummies composer zend-framework zend-framework-mvc

zend-framework - mac - zend framework download



Zend Framework: plugins de controlador vs Action Helpers (5)

Los ayudantes de acción también tienen acceso al objeto de control real que se está ejecutando. Los complementos del controlador solo tienen acceso al FrontController y, por lo tanto, solo el controlador y el nombre de la acción.

El que uses depende del contexto que necesites. Si necesita acceder a un objeto de vista conectado a un controlador, por ejemplo, querrá un Ayudante de acción.

¿Podría alguien dar algunos consejos y / o ejemplos de cómo los complementos de controlador y los ayudantes de acción son diferentes? ¿Hay situaciones en las que una tarea particular se podría lograr con una pero no con otra? Para mí ambos se ven más o menos iguales y a menudo tengo problemas para decidir cuándo usar qué ... ¿Hay grandes diferencias?


Los complementos del controlador se pueden enganchar en cualquier controlador en cualquier punto del proceso de enrutamiento (preDispatch postDispatch, routeStartup, routeShutdown), lo que los hace aptos para proporcionar funcionalidad detrás de escena, como la aplicación de ACL.

Los Action Helpers son para segmentos reutilizables pero opcionales a los que su controlador podría necesitar acceder (redirector, flashMessenger).

Por lo tanto, si está creando un fragmento reutilizable de código que siempre necesita ejecutarse a sí mismo, utilice un complemento de controlador; de lo contrario, probablemente desee un asistente de acción.


Puedes pensarlo de esta manera:

  • Los ayudantes de acción se utilizan para agregar métodos a los controladores.
  • Los complementos del controlador se usan para agregar lógica de enrutamiento / despacho a los controladores.

Entonces pregúntate, ¿tengo un método que me gustaría poder llamar desde todas las acciones en mi controlador? ¿O necesito agregar lógica al proceso de enrutamiento / envío?

También puede echar un vistazo a los Ayudantes de acción incorporada .


También observe que, en el proceso de ciclo de vida del controlador frontal, los complementos obtienen el control (o invocado) primero que los ayudantes de acción.


Una imagen para ilustrar la diferencia entre los complementos y los ayudantes de acción: ZF Sequence Flow