Como @Arms me sugirió, comencé a explorar el mecanismo del evento de Symfony 2. Así que ahora voy a escribir el código, eso resolvió mi problema (todas las configuraciones que estoy haciendo en YAML, pero puedes hacerlo en XML o PHP también).
Al principio debe describir en la configuración de Symfony qué tipo de evento desea escuchar y qué debe llamar el kernel cuando ocurre el evento. Por esta abierto el fichero de configuración app \ config \ config.yml y agregue el siguiente código:
services:
younamespace.yourbundle.listener.preexecute:
class: Location\Of\Your\Listener\Class
tags:
- { name: kernel.event_listener, event: kernel.controller, method: onKernelController }
Su clase debe implementar el método onKernelController de la siguiente manera:
public function onKernelController(FilterControllerEvent $event) {
if(HttpKernelInterface::MASTER_REQUEST === $event->getRequestType()) {
$controllers = $event->getController();
if(is_array($controllers)) {
$controller = $controllers[0];
if(is_object($controller) && method_exists($controller, 'preExecute')) {
$controller->preExecute();
}
}
}
}
Después de esto todos Cuando crea un método preExecute en su controlador, se llamará antes de ejecutar cualquier acción, por lo que puede hacer muchas cosas en ese método, como la inicialización de variables, o algunas comprobaciones antes de escribir en DB, etc.
También puede buscar en la configuración de detalles here (este ejemplo es para el evento kernel.request, pero puede ayudar a entender)
Diviértete;)
Gracias mucho por su sugerencia, me ayudó mucho – haynar