vendor/overblog/graphql-bundle/src/Definition/ArgumentFactory.php line 37

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Overblog\GraphQLBundle\Definition;
  4. use Closure;
  5. use function func_get_args;
  6. class ArgumentFactory
  7. {
  8.     private string $className;
  9.     public function __construct(string $className)
  10.     {
  11.         $this->className $className;
  12.     }
  13.     public function create(?array $rawArguments): ArgumentInterface
  14.     {
  15.         $className $this->className;
  16.         /** @var ArgumentInterface $arguments */
  17.         $arguments = new $className();
  18.         $arguments->exchangeArray($rawArguments);
  19.         return $arguments;
  20.     }
  21.     public function wrapResolverArgs(callable $resolver): Closure
  22.     {
  23.         return function () use ($resolver) {
  24.             $args func_get_args();
  25.             if (isset($args[1]) && !$args[1] instanceof ArgumentInterface) {
  26.                 $args[1] = $this->create($args[1]);
  27.             }
  28.             return $resolver(...$args);
  29.         };
  30.     }
  31. }