Esempio n. 1
0
 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());
 }
Esempio n. 2
0
 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);
     }
 }
Esempio n. 3
0
 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();
 }