/** * @{inheritdoc} */ public function getController(Request $request) { $e = $this->stopwatch->start('controller.get_callable'); $ret = parent::getController($request); $e->stop(); return $ret; }
/** * @param FilterControllerEvent $event * @DI\Observe("kernel.controller") */ public function onControllerRequest(FilterControllerEvent $event) { $controller = $event->getController(); $request = $event->getRequest(); $session = $request->getSession(); if (!is_array($controller) && !$this->authorizationChecker->isGranted("IS_AUTHENTICATED_FULLY")) { return; } if ($request->attributes->get('_route') == 'site_url' || $request->attributes->get('_route') == 'startpage') { if ($this->authorizationChecker->isGranted("IS_AUTHENTICATED_FULLY") && !$request->get("skipIframe")) { $controller = "BigfishCoreBundle:Base:iframe"; $request->attributes->set('_controller', $controller); $uri = $request->getPathInfo(); $request->attributes->set("slug", ltrim($uri, "/")); $event->setController($this->controllerResolver->getController($request)); } } }
/** * load a controller by mapping. this can only be done at this point, * during DI the controller might not yet be available. * * @param string $name the controller name in the format service:actionMethod * * @return array of controller class and method name suitable for call_user_func */ protected function resolveController($name) { // Search for the mapped controller/action $parser = new ControllerNameParser($this->container->get('kernel')); $resolver = new ControllerResolver($this->container, $parser); return $resolver->getController(new Request(array(), array(), array('_controller' => $name))); }