doGetArguments() protected method

Deprecation: This method is deprecated as of 3.1 and will be removed in 4.0. Implement the ArgumentResolverInterface and inject it in the HttpKernel instead.
protected doGetArguments ( Request $request, callable $controller, array $parameters ) : array
$request Symfony\Component\HttpFoundation\Request
$controller callable
$parameters array
return array The arguments to use when calling the action
 protected function doGetArguments(Request $request, $controller, array $parameters)
 {
     foreach ($parameters as $param) {
         if ($param->getClass() && $param->getClass()->isInstance($this->app)) {
             $request->attributes->set($param->getName(), $this->app);
             break;
         }
     }
     return parent::doGetArguments($request, $controller, $parameters);
 }
Beispiel #2
0
 protected function doGetArguments(Request $request, $controller, array $parameters)
 {
     /** @var \ReflectionParameter $param */
     foreach ($parameters as $param) {
         /** @var \Symfony\Component\Routing\Route $route */
         $route = $this->app['routes']->get($request->attributes->get('_route'));
         $bundle = $this->app->getSubBundle($route->getOption('bundle_name'));
         if ($bundle && $param->getClass() && $param->getClass()->isInstance($bundle)) {
             $request->attributes->set($param->getName(), $bundle);
             continue;
         }
         if ($param->getClass() && $param->getClass()->isInstance($this->app)) {
             $request->attributes->set($param->getName(), $this->app);
             continue;
         }
     }
     return parent::doGetArguments($request, $controller, $parameters);
 }
 /**
  * {@inheritdoc}
  */
 protected function doGetArguments(Request $request, $controller, array $parameters)
 {
     $arguments = parent::doGetArguments($request, $controller, $parameters);
     // The parameter converter overrides the raw request attributes with the
     // upcasted objects. However, it keeps a backup copy of the original, raw
     // values in a special request attribute ('_raw_variables'). If a controller
     // argument has a type hint, we pass it the upcasted object, otherwise we
     // pass it the original, raw value.
     if ($request->attributes->has('_raw_variables') && ($raw = $request->attributes->get('_raw_variables')->all())) {
         foreach ($parameters as $parameter) {
             // Use the raw value if a parameter has no typehint.
             if (!$parameter->getClass() && isset($raw[$parameter->name])) {
                 $position = $parameter->getPosition();
                 $arguments[$position] = $raw[$parameter->name];
             }
         }
     }
     return $arguments;
 }
 protected function doGetArguments(Request $request, $controller, array $parameters)
 {
     $args = $this->injectArguments($parameters, $request);
     foreach ($args as $key => $value) {
         $request->attributes->set($key, $value);
     }
     return parent::doGetArguments($request, $controller, $parameters);
 }