Spaces:
Sleeping
Sleeping
processmaker-community / processmaker-files /vendor /symfony /http-kernel /Controller /ArgumentResolver /ServiceValueResolver.php
| /* | |
| * This file is part of the Symfony package. | |
| * | |
| * (c) Fabien Potencier <fabien@symfony.com> | |
| * | |
| * For the full copyright and license information, please view the LICENSE | |
| * file that was distributed with this source code. | |
| */ | |
| namespace Symfony\Component\HttpKernel\Controller\ArgumentResolver; | |
| use Psr\Container\ContainerInterface; | |
| use Symfony\Component\HttpFoundation\Request; | |
| use Symfony\Component\HttpKernel\Controller\ArgumentValueResolverInterface; | |
| use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata; | |
| /** | |
| * Yields a service keyed by _controller and argument name. | |
| * | |
| * @author Nicolas Grekas <p@tchwork.com> | |
| */ | |
| final class ServiceValueResolver implements ArgumentValueResolverInterface | |
| { | |
| private $container; | |
| public function __construct(ContainerInterface $container) | |
| { | |
| $this->container = $container; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function supports(Request $request, ArgumentMetadata $argument) | |
| { | |
| return is_string($controller = $request->attributes->get('_controller')) && $this->container->has($controller) && $this->container->get($controller)->has($argument->getName()); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function resolve(Request $request, ArgumentMetadata $argument) | |
| { | |
| yield $this->container->get($request->attributes->get('_controller'))->get($argument->getName()); | |
| } | |
| } | |