/** * @param string $key * * @throws ParameterNotFoundException * * @return mixed */ public function get(string $key) { if ($this->has($key)) { return deep_clone($this->parameters[$key]); } throw ParameterNotFoundExceptionFactory::create($key); }
public function testTestCreateForWhenResolvingParameter() { $exception = ParameterNotFoundExceptionFactory::createForWhenResolvingParameter('foo', new Parameter('bar', 'baz')); $this->assertEquals('Could not find the parameter "foo" when resolving "bar".', $exception->getMessage()); $this->assertEquals(0, $exception->getCode()); $this->assertNull($exception->getPrevious()); }
/** * @param ParameterResolverInterface $resolver * @param Parameter $parameter Parameter being resolved * @param string $key Key of the parameter that need to be resolved to resolve $parameter * @param ParameterBag $unresolvedParameters * @param ParameterBag $resolvedParameters * @param ResolvingContext $context * * @return ParameterBag */ private function resolveStringKey(ParameterResolverInterface $resolver = null, Parameter $parameter, string $key, ParameterBag $unresolvedParameters, ParameterBag $resolvedParameters, ResolvingContext $context) : ParameterBag { if ($resolvedParameters->has($key)) { return $resolvedParameters; } if (false === $unresolvedParameters->has($key)) { throw ParameterNotFoundExceptionFactory::createForWhenResolvingParameter($key, $parameter); } $context->checkForCircularReference($key); $context->add($key); if (null === $resolver) { throw ResolverNotFoundExceptionFactory::createUnexpectedCall(__METHOD__); } return $resolver->resolve(new Parameter($key, $unresolvedParameters->get($key)), $unresolvedParameters, $resolvedParameters, $context); }