Matthias\SymfonyServiceDefinitionValidator\ConstructorResolver::resolve PHP Method

resolve() public method

public resolve ( Definition $definition )
$definition Symfony\Component\DependencyInjection\Definition
    public function resolve(Definition $definition)
    {
        $factory = $this->resolveFactory($definition);
        if (is_string($factory)) {
            return $this->resolveFactoryFunction($factory);
        }
        if (is_array($factory) && $factory[0] instanceof Reference) {
            return $this->resolveFactoryServiceWithMethod((string) $factory[0], $factory[1]);
        }
        if (is_array($factory) && $factory[0] instanceof Definition) {
            return $this->resolveFactoryServiceDefinitionWithMethod($factory[0], $factory[1]);
        }
        if (is_array($factory)) {
            return $this->resolveFactoryClassWithMethod($factory[0], $factory[1]);
        }
        if ($definition->getClass()) {
            return $this->resolveClassWithConstructor($definition->getClass());
        }
        return null;
    }

Usage Example

 /**
  * @test
  */
 public function ifFactoryFunctionDoesNotExistFails()
 {
     if (!method_exists('Symfony\\Component\\DependencyInjection\\Definition', 'getFactory')) {
         $this->markTestSkipped('Support for callables as factories was introduced in Symfony 2.6');
     }
     $containerBuilder = new ContainerBuilder();
     $resolver = new ConstructorResolver($containerBuilder, new ResultingClassResolver($containerBuilder));
     $definition = new Definition();
     $definition->setFactory('NotExistingFactoryCallback');
     $this->setExpectedException('Matthias\\SymfonyServiceDefinitionValidator\\Exception\\FunctionNotFoundException');
     $resolver->resolve($definition);
 }