Nelmio\Alice\Generator\Resolver\Parameter\RemoveConflictingParametersParameterBagResolver::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
    {
        if (null === $injectedParameters) {
            $injectedParameters = new ParameterBag();
        }
        foreach ($injectedParameters as $injectedParameterKey => $injectedParameterValue) {
            if ($unresolvedParameters->has($injectedParameterKey)) {
                $injectedParameters = $injectedParameters->without($injectedParameterKey);
            }
        }
        return $this->resolver->resolve($unresolvedParameters, $injectedParameters);
    }

Usage Example

 public function testCanHandleTheCaseWhereNoParameterIsInjected()
 {
     $unresolvedParameters = new ParameterBag(['foo' => '(unresolved) bar', 'ping' => '(unresolved) pong']);
     $injectedParameters = null;
     $decoratedResolverProphecy = $this->prophesize(ParameterBagResolverInterface::class);
     $decoratedResolverProphecy->resolve($unresolvedParameters, new ParameterBag())->willReturn($expected = new ParameterBag(['foo' => '(resolved) bar', 'ping' => '(resolved) pong', 'foz' => 'baz']));
     /* @var ParameterBagResolverInterface $decoratedResolver */
     $decoratedResolver = $decoratedResolverProphecy->reveal();
     $resolver = new RemoveConflictingParametersParameterBagResolver($decoratedResolver);
     $actual = $resolver->resolve($unresolvedParameters, $injectedParameters);
     $this->assertEquals($expected, $actual);
     $decoratedResolverProphecy->resolve(Argument::cetera())->shouldHaveBeenCalledTimes(1);
 }
RemoveConflictingParametersParameterBagResolver