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); }
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); }