Nelmio\Alice\Generator\Resolver\Parameter\SimpleParameterBagResolver::resolve PHP Method

resolve() public method

public resolve ( ParameterBag $unresolvedParameters, ParameterBag $injectedParameters = null ) : ParameterBag
$unresolvedParameters Nelmio\Alice\ParameterBag
$injectedParameters Nelmio\Alice\ParameterBag
return Nelmio\Alice\ParameterBag
    public function resolve(ParameterBag $unresolvedParameters, ParameterBag $injectedParameters = null) : ParameterBag
    {
        $resolvedParameters = null === $injectedParameters ? new ParameterBag() : $injectedParameters;
        foreach ($unresolvedParameters as $key => $value) {
            if ($resolvedParameters->has($key)) {
                continue;
            }
            $context = new ResolvingContext($key);
            $resolvedParameters = $this->resolver->resolve(new Parameter($key, $value), $unresolvedParameters, $resolvedParameters, $context);
        }
        return $resolvedParameters;
    }

Usage Example

 public function testResolvesBagWithInjectedParameters()
 {
     $unresolvedParameters = new ParameterBag(['foo' => '(unresolved) bar', 'ping' => '(unresolved) pong']);
     $injectedParameters = new ParameterBag(['other_param' => 'oï']);
     $decoratedResolverProphecy = $this->prophesize(ParameterResolverInterface::class);
     $decoratedResolverProphecy->resolve(new Parameter('foo', '(unresolved) bar'), $unresolvedParameters, $injectedParameters, new ResolvingContext('foo'))->willReturn(new ParameterBag(['other_param' => 'yo', 'foo' => 'bar']));
     $decoratedResolverProphecy->resolve(new Parameter('ping', '(unresolved) pong'), $unresolvedParameters, new ParameterBag(['other_param' => 'yo', 'foo' => 'bar']), new ResolvingContext('ping'))->willReturn(new ParameterBag(['other_param' => 'yo', 'foo' => 'bar', 'ping' => 'pong']));
     /* @var ParameterResolverInterface $decoratedResolver */
     $decoratedResolver = $decoratedResolverProphecy->reveal();
     $resolver = new SimpleParameterBagResolver($decoratedResolver);
     $result = $resolver->resolve($unresolvedParameters, $injectedParameters);
     $this->assertEquals(new ParameterBag(['other_param' => 'yo', 'foo' => 'bar', 'ping' => 'pong']), $result);
 }
All Usage Examples Of Nelmio\Alice\Generator\Resolver\Parameter\SimpleParameterBagResolver::resolve
SimpleParameterBagResolver