/** * @param \Spryker\Shared\Kernel\Communication\BundleControllerActionInterface $bundleControllerAction * * @return \Spryker\Zed\Application\Communication\Controller\AbstractController */ protected function resolveController(BundleControllerActionInterface $bundleControllerAction) { $controllerResolver = new ControllerResolver(); $controller = $controllerResolver->resolve($bundleControllerAction); $controller->setApplication($this->app); $controller->initialize(); return $controller; }
/** * {@inheritdoc} * @throws \Symfony\Component\Routing\Exception\ResourceNotFoundException */ public function match($pathinfo) { $request = $this->app['request_stack']->getCurrentRequest(); $bundleControllerAction = new BundleControllerAction($request->attributes->get('module'), $request->attributes->get('controller'), $request->attributes->get('action')); $controllerResolver = new ControllerResolver(); if (!$controllerResolver->isResolveAble($bundleControllerAction)) { throw new ResourceNotFoundException(); } $routeNameResolver = new RouteNameResolver($request); $service = (new ControllerServiceBuilder())->createServiceForController($this->app, $bundleControllerAction, $controllerResolver, $routeNameResolver); return ['_controller' => $service, '_route' => $routeNameResolver->resolve()]; }