/**
  * {@inheritdoc}
  */
 public function handle(RequestInterface $request)
 {
     /* @var  ServerRequestInterface $request */
     $sfRequest = $this->httpFoundationFactory->createRequest($request);
     $sfResponse = $this->kernel->handle($sfRequest);
     if ($this->isTerminableKernel) {
         $this->requestMapping->attach($request, array($sfRequest, $sfResponse));
     }
     return $this->httpMessageFactory->createResponse($sfResponse);
 }
Exemplo n.º 2
0
 /**
  * {@inheritdoc}
  */
 protected function doGetArguments(Request $request, $controller, array $parameters)
 {
     $attributes = $request->attributes->all();
     $raw_parameters = $request->attributes->has('_raw_variables') ? $request->attributes->get('_raw_variables') : [];
     $arguments = array();
     foreach ($parameters as $param) {
         if (array_key_exists($param->name, $attributes)) {
             $arguments[] = $attributes[$param->name];
         } elseif (array_key_exists($param->name, $raw_parameters)) {
             $arguments[] = $attributes[$param->name];
         } elseif ($param->getClass() && $param->getClass()->isInstance($request)) {
             $arguments[] = $request;
         } elseif ($param->getClass() && $param->getClass()->name === ServerRequestInterface::class) {
             $arguments[] = $this->httpMessageFactory->createRequest($request);
         } elseif ($param->getClass() && ($param->getClass()->name == RouteMatchInterface::class || is_subclass_of($param->getClass()->name, RouteMatchInterface::class))) {
             $arguments[] = RouteMatch::createFromRequest($request);
         } elseif ($param->isDefaultValueAvailable()) {
             $arguments[] = $param->getDefaultValue();
         } else {
             if (is_array($controller)) {
                 $repr = sprintf('%s::%s()', get_class($controller[0]), $controller[1]);
             } elseif (is_object($controller)) {
                 $repr = get_class($controller);
             } else {
                 $repr = $controller;
             }
             throw new \RuntimeException(sprintf('Controller "%s" requires that you provide a value for the "$%s" argument (because there is no default value or because there is a non optional argument after this one).', $repr, $param->name));
         }
     }
     return $arguments;
 }
 /**
  * {@inheritdoc}
  */
 public function apply(Request $request, ParamConverter $configuration)
 {
     $request->attributes->set($configuration->getName(), $this->httpMessageFactory->createRequest($request));
 }
 /**
  * {@inheritdoc}
  */
 public function process(RequestInterface $request)
 {
     $httpFoundationRequest = $this->httpFoundationFactory->createRequest($request);
     $httpFoundationResponse = $this->next->handle($httpFoundationRequest);
     return $this->httpMessageFactory->createResponse($httpFoundationResponse);
 }