public function testDependencyInjectorHasBuiltInImplementations() { $di = new DependencyInjector(); $this->assertInstanceOf('Zend\Di\InstanceManager', $di->getInstanceManager()); $this->assertInstanceOf('Zend\Di\Definition', $di->getDefinition()); $this->assertInstanceOf('Zend\Di\Definition\RuntimeDefinition', $di->getDefinition()); }
public function configureDefinition(DependencyInjector $di, $definitionData) { if ($di->hasDefinition()) { $aggregateDef = $di->getDefinition(); if (!$aggregateDef instanceof Definition\AggregateDefinition) { throw new Exception\InvalidArgumentException('In order to configure multiple definitions, the primary definition must not be set, or must be of type AggregateDefintion'); } } /* else { $aggregateDef = $di->createDefinition('Zend\Di\Definition\AggregateDefinition'); $di->setDefinition($aggregateDef); } */ if (isset($definitionData['class'])) { $definition = $di->createDefinition($definitionData['class']); unset($definitionData['class']); if ($definition instanceof Definition\BuilderDefinition) { $definition->createClassesFromArray($definitionData); } else { // @todo other types } } if (isset($aggregateDef)) { $aggregateDef->addDefinition($definition); } else { $di->setDefinition($definition); } }
public function testConfigurationCanConfigureBuilderDefinitionFromIni() { $ini = new \Zend\Config\Ini(__DIR__ . '/_files/sample.ini', 'section-b'); $config = new Configuration($ini->di); $di = new DependencyInjector($config); $definition = $di->getDefinition(); $this->assertTrue($definition->hasClass('My\DbAdapter')); $this->assertEquals('__construct', $definition->getInstantiator('My\DbAdapter')); $this->assertEquals( array('username' => null, 'password' => null), $definition->getInjectionMethodParameters('My\DbAdapter', '__construct') ); $this->assertTrue($definition->hasClass('My\Mapper')); $this->assertEquals('__construct', $definition->getInstantiator('My\Mapper')); $this->assertEquals( array('dbAdapter' => 'My\DbAdapter'), $definition->getInjectionMethodParameters('My\Mapper', '__construct') ); $this->assertTrue($definition->hasClass('My\Repository')); $this->assertEquals('__construct', $definition->getInstantiator('My\Repository')); $this->assertEquals( array('mapper' => 'My\Mapper'), $definition->getInjectionMethodParameters('My\Repository', '__construct') ); }
public function testDependencyInjectorWillUsePokeYokeRuntimeDefinition() { $di = new DependencyInjector(); $this->assertInstanceOf('Zend\Di\Definition', $di->getDefinition()); $this->assertInstanceOf('Zend\Di\Definition\RuntimeDefinition', $di->getDefinition()); }
/** * @param DependencyInjector $di * @return void */ public function __construct(DependencyInjector $di) { $this->di = $di; $this->definition = $di->getDefinition(); $this->instanceManager = $di->getInstanceManager(); }