12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- <?php
- namespace Symfony\Component\HttpKernel\Controller\ArgumentResolver;
- use Symfony\Component\HttpFoundation\Request;
- use Symfony\Component\HttpKernel\Controller\ArgumentValueResolverInterface;
- use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata;
- final class VariadicValueResolver implements ArgumentValueResolverInterface
- {
-
- public function supports(Request $request, ArgumentMetadata $argument): bool
- {
- return $argument->isVariadic() && $request->attributes->has($argument->getName());
- }
-
- public function resolve(Request $request, ArgumentMetadata $argument): iterable
- {
- $values = $request->attributes->get($argument->getName());
- if (!\is_array($values)) {
- throw new \InvalidArgumentException(sprintf('The action argument "...$%1$s" is required to be an array, the request attribute "%1$s" contains a type of "%2$s" instead.', $argument->getName(), get_debug_type($values)));
- }
- yield from $values;
- }
- }
|