Me gustaría ejecutar el código antes de todas las acciones en mi proyecto (para calcular una variable global importante). ¿Cómo establecer una función de acción previa en mis controladores?Ejecutar código antes de la acción del controlador
22
A
Respuesta
23
No hay método de acción previa en Symfony2. Tienes que usar event listeners para ese fin.
10
Especialmente tienes que leer esta página documentación: http://symfony.com/doc/current/cookbook/event_dispatcher/before_after_filters.html
15
Probablemente el uso de los oyentes es la forma más elegante para poner en práctica "después de tareas de controlador inicializado", pero no hay manera más simplificada para hacerlo:
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Override method to call #containerInitialized method when container set.
* {@inheritdoc}
*/
public function setContainer(ContainerInterface $container = null)
{
parent::setContainer($container);
$this->containerInitialized();
}
/**
* Perform some operations after controller initialized and container set.
*/
private function containerInitialized()
{
// some tasks to do...
}
Inserte este código en su controlador, o, si lo prefiere, puede incluso insertarlo en la abstracción principal básica de sus controladores.
porque el contenedor se establecerá en cada controlador cuando se inicialice, podemos anular el método setContainer
para realizar algunas tareas después de configurar el contenedor.
Cuestiones relacionadas
- 1. ¿Hay eventos antes de ejecutar un controlador?
- 2. backgroundworker bloqueando la acción del controlador MVC
- 3. ¿Filtro para ejecutar antes del renderizado pero después del controlador?
- 4. Ejecución de código antes de cualquier acción
- 5. ¿Cómo ejecutar el código antes de la salida del programa?
- 6. ASP.NET MVC: ¿acción actual del código del controlador?
- 7. ¿Cómo puedo obtener cierto código para ejecutar antes de cada acción de controlador único en ASP.NET MVC 2?
- 8. Render acción del controlador desde otro controlador
- 9. Cómo ejecutar Primavera en Acción tercera edición del código fuente
- 10. Determine si la acción del controlador está autorizada antes de llamarlo
- 11. ¿Cuál es la forma correcta de ejecutar una acción de controlador desde otra acción de controlador sin una redirección HTTP?
- 12. ASP.NET confirme antes de ejecutar código subyacente
- 13. PHP, espere 5 segundos antes de ejecutar una acción
- 14. ¿Ejecuta la acción del controlador MVC sin la vista?
- 15. Rieles: nombre de la acción del controlador en la cadena
- 16. En ASP.NET MVC, deserialize JSON antes o en el método de acción del controlador
- 17. Código de respuesta 401 activando la autenticación básica antes del controlador de error jquery ajax
- 18. Ejecutar código antes de que se ejecute la función llamada
- 19. Rails Modelo para llamar acción del controlador
- 20. obtener la ruta a la acción del controlador (url) programáticamente
- 21. Ember.js Acción del enrutador al controlador
- 22. Apagando el debug_kit dentro de la acción del controlador, Cakephp
- 23. Llamar javascript desde la acción del controlador MVC
- 24. ¿Cómo obtener el controlador y la acción actuales desde dentro de la acción del niño?
- 25. OnActionExecuting añadir a modelar antes de llegar a la acción
- 26. Recordando ejecutar pruebas antes del commit
- 27. Permitir múltiples roles para acceder a la acción del controlador
- 28. Rieles: ruta a la acción del controlador personalizado
- 29. MVC Jquery vaya a la acción del controlador
- 30. .NET MVC - Llamar a un controlador Acción desde otra acción del controlador
maldito, está bien. Gracias;) – bux
Tengo que agregar que aunque no existe un método de acción previa per se, el evento 'kernel.controller' es probablemente lo que usted desea. – PhoneixS