Пример #1
0
 /**
  * @param RouteConfigurationBuilder $builder
  *
  * @return RouteConfiguration
  */
 public function build(RouteConfigurationBuilder $builder)
 {
     $builder->setRequest($this->request);
     $builder->setRequestContext($this->requestContext);
     $builder->setConfigurationPath($this->path);
     return $builder->build();
 }
Пример #2
0
 /**
  * @param Request $request
  * @param int     $type
  * @param bool    $catch
  */
 public function handle(Request $request, $type = self::MASTER_REQUEST, $catch = true)
 {
     if ($type === HttpKernelInterface::SUB_REQUEST) {
         return $this->app->handle($request, $type, $catch);
     }
     $context = new RequestContext();
     $context->fromRequest($request);
     $this->routeBuilder->setRequest($request);
     $this->routeBuilder->setRequestContext($context);
     $routeCollection = $this->router->getRouteCollection();
     $configuration = $this->routeBuilder->build();
     $routeCollection->addCollection($configuration->getRouteCollection());
     $this->router->setUrlGenerator($configuration->getUrlGenerator());
     $this->router->setUrlMatcher(new UrlMatcher($routeCollection, $context));
     $request->attributes->add($this->router->match($request->getPathInfo()));
     $route = $routeCollection->get($request->attributes->get('_route'));
     if (null === $route->getOption('dispatch')) {
         throw new NotFoundHttpException();
     }
     $request->attributes->set('dispatch', $route->getOption('dispatch'));
     return $this->app->handle($request, $type, $catch);
 }