* * 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 Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Controller\ArgumentValueResolverInterface; use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata; /** * Yields a variadic argument's values from the request attributes. * * @author Iltar van der Berg */ final class VariadicValueResolver implements ArgumentValueResolverInterface { /** * {@inheritdoc} */ public function supports(Request $request, ArgumentMetadata $argument) { return $argument->isVariadic() && $request->attributes->has($argument->getName()); } /** * {@inheritdoc} */ public function resolve(Request $request, ArgumentMetadata $argument) { $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(), gettype($values))); } foreach ($values as $value) { yield $value; } } } __halt_compiler();----SIGNATURE:----QyLJiBVha3KGlKr4iI6c5LKZYRwL9SYAkoMJMsnuaUWy41GxguLBy0rgZFVWsSTg7qMboLM4umCNkrvHm/1H+OZfaGSCypR1F9nmffHm1Tn5XfiVlRi4I2b04kyzq2zj1/ZjNVblRMZPQHLZJR9t+9BIPSdOofz/n55810Up6EEsD7qF1qZOSzwfivL/F8mrg4i9PveHI5ULGHDO/07dJgeTVmgTy+CbjdihCo3Q5lGbbpcbFjdRno8lds7xsLUe160WSfmh16akcNpy7Pg9MnLvb8z4tlUkKdmFkn01YPfFJSeJPipZHh0VUuCnlRWaN/oFor4AHyRRc+Af2/3bx8Qis5KmxsBQHzsBdUKKhsyPZJg6o/KFNUqr99gkMGjL9+IVyMrO3I2P/G6q9DWVmO/zybNJ0FNp61YWR0zmuz9ZuCPp3JmmsWn1MsSLrt30RPFjTnociRXV1y5M8IhXBYWVfdk5M/0zOwYQWSuvkigHawwvAKMBmKfEfNhvLw9xIXONmQc/z5NYpeh2gyZimikoVmTCLfHhP+4kZTisX062Nr6gM49LWcladbk8ewyvPdNMRYKFv3m0sjPwR/U0EUfkLLmL0rHmXQjb3wJg9yeX7vm/ujuR/DTVjEzjfltI4p9Gy6+X7mOZJU0fMw8L9prl4CizWIozxC5xqcI+Rr0=----ATTACHMENT:----MjcyNzc5NDAxMDQ5MDcyOCAzNzY1NTkxNTQ1MDcxMTA1IDYzNDA0OTc4NjkyNDg1NDI=