public resolve ( |
||
$parameter | ||
$unresolvedParameters | ||
$resolvedParameters | ||
$context | ||
return |
public function resolve(Parameter $parameter, ParameterBag $unresolvedParameters, ParameterBag $resolvedParameters, ResolvingContext $context = null) : ParameterBag
{
$context = ResolvingContext::createFrom($context, $parameter->getKey());
$self = $this;
$value = preg_replace_callback(self::PATTERN, function ($match) use($self, $context, $unresolvedParameters, &$resolvedParameters, $parameter) {
$key = $match['parameter'];
$resolvedParameters = $self->resolveStringKey($self->resolver, $parameter, $key, $unresolvedParameters, $resolvedParameters, $context);
return $resolvedParameters->get($key);
}, $parameter->getValue());
return $resolvedParameters->with($parameter->withValue($value));
}
/** * @expectedException \Nelmio\Alice\Throwable\Exception\Generator\Resolver\ResolverNotFoundException * @expectedExceptionMessage Expected method "Nelmio\Alice\Generator\Resolver\Parameter\Chainable\StringParameterResolver::resolveStringKey" to be called only if it has a resolver. */ public function testThrowsAnExceptionIfNoResolverInjectedWhenRequired() { $parameter = new Parameter('foo', '<{bar}>'); $unresolvedParameters = new ParameterBag(['bar' => 'unresolved(bar)']); $resolvedParameters = new ParameterBag(); $resolver = new StringParameterResolver(); $resolver->resolve($parameter, $unresolvedParameters, $resolvedParameters); }