¿Podría alguien dar algunos consejos y/o ejemplos de cómo los complementos del 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?Zend Framework: Complementos del Controlador vs Ayudantes de Acción
Respuesta
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 funciones detrás de la escena como el cumplimiento de ACL.
Los Ayudantes de acción 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 de código reutilizable que siempre necesita ejecutarse a sí mismo, utilice un complemento de controlador; de lo contrario, es probable que desee una acción de ayuda.
Se puede pensar de esta manera:
- ayudantes de acción se utilizan para agregar métodos a los controladores.
- Los complementos del controlador se utilizan para agregar la lógica de enrutamiento/despacho a los controladores.
Así que 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 ver el Built in Action Helpers.
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.
Cuál usted utiliza depende de qué contexto usted necesita. Si necesita acceder a un objeto de vista conectado a un controlador, por ejemplo, querrá un Ayudante de acción.
Una imagen para ilustrar la diferencia entre plugins y ayudantes de acción: ZF Sequence Flow
Nótese también que, en el proceso del ciclo de vida controlador frontal, los plugins obtener el control (o invocado) primero de los ayudantes de acción.
- 1. Zend framework: rutas de complementos
- 2. Manejo de excepciones incluidas en los complementos del controlador Zend Framework
- 3. Usar ver ayudantes en los controladores en Zend Framework
- 4. Zend Framework Renderizar vista diferente dentro del módulo/controlador
- 5. Zend Framework - Cómo llamar a la redirección del controlador() desde dentro de un helper de acción
- 6. Cómo agregar ayudantes de visualización personalizados a Zend Framework 2
- 7. Zend Framework 2 ¿cómo probar la redirección en la acción del controlador?
- 8. Zend Framework TDG vs Doctrina
- 9. Zend framework; Hacer que el controlador use un visor diferente
- 10. Zend Framework: cuándo usar viewcripts/parciales vs view helpers
- 11. RESTful Zend Framework API
- 12. Use segmentos de URL como parámetros del método de acción en Zend Framework
- 13. Función de miembro llamante de otro controlador en zend framework?
- 14. Zend Framework muestra la vista de otro controlador
- 15. Zend Framework 2 para Zend Framework Newbie
- 16. Zend Framework JSON Output
- 17. Render acción del controlador desde otro controlador
- 18. Zend Framework - Lectura de valores de Application.ini desde un Controlador
- 19. Qcodo vs. CakePHP vs. Zend
- 20. ¿Cómo puedo obtener la acción actual en Zend Framework?
- 21. Rails Modelo para llamar acción del controlador
- 22. ¿Cómo ampliar/anular las acciones del controlador de los complementos?
- 23. Acceso a los ayudantes de acción de mis modelos en zend
- 24. Cambiar el diseño en el controlador de Zend Framework 2.0
- 25. Ajuste del InvokeArg correcta al ejecutar controlador de Zend Framework en Zend_Test aprovechar
- 26. utilizar ayudantes vs Modelo
- 27. Establecer rutas en application.ini en Zend Framework
- 28. Dónde colocar los complementos en un sitio web de Zend Framework
- 29. Zend Framework Layout
- 30. Leer encabezados HTTP en el Controlador (Zend Framework)
Solo para tener en cuenta que los controladores de acción también se pueden ejecutar a sí mismos ya que tienen ganchos preDispatch() y postDispatch(). ActionHelperBroker se usa para controlar esto. –