Example #1
0
 /**
  * @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());
 }
Example #3
0
 /**
  * @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);
 }