public resolve ( |
||
$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;
}
/** * @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); }