public function testGetInstantiator()
 {
     $definition = new ClassDefinition('Foo');
     $definition->setInstantiator('__construct');
     $this->assertNull($definition->getInstantiator('Bar'));
     $this->assertEquals('__construct', $definition->getInstantiator('Foo'));
 }
Exemple #2
0
 public function testNewInstanceCanHandleComplexCallback()
 {
     $definitionList = new DefinitionList(array($classdefB = new Definition\ClassDefinition('ZendTest\\Di\\TestAsset\\CallbackClasses\\B'), $classdefC = new Definition\ClassDefinition('ZendTest\\Di\\TestAsset\\CallbackClasses\\C'), new Definition\RuntimeDefinition()));
     $classdefB->setInstantiator('ZendTest\\Di\\TestAsset\\CallbackClasses\\B::factory');
     $classdefB->addMethod('factory', true);
     $classdefB->addMethodParameter('factory', 'c', array('type' => 'ZendTest\\Di\\TestAsset\\CallbackClasses\\C', 'required' => true));
     $classdefB->addMethodParameter('factory', 'params', array('type' => 'Array', 'required' => false));
     $di = new Di($definitionList);
     $b = $di->get('ZendTest\\Di\\TestAsset\\CallbackClasses\\B', array('params' => array('foo' => 'bar')));
     $this->assertInstanceOf('ZendTest\\Di\\TestAsset\\CallbackClasses\\B', $b);
     $this->assertInstanceOf('ZendTest\\Di\\TestAsset\\CallbackClasses\\C', $b->c);
     $this->assertEquals(array('foo' => 'bar'), $b->params);
 }