Example #1
0
 public function configureInstance(DependencyInjector $di, $instanceData)
 {
     $im = $di->getInstanceManager();
     foreach ($instanceData as $target => $data) {
         switch (strtolower($target)) {
             case 'aliases':
             case 'alias':
                 foreach ($data as $aliasName => $className) {
                     $im->addAlias($aliasName, $className);
                 }
                 break;
             case 'properties':
             case 'property':
                 foreach ($data as $classOrAlias => $properties) {
                     foreach ($properties as $propName => $propValue) {
                         $im->setProperty($classOrAlias, $propName, $propValue);
                     }
                 }
                 break;
             case 'preferences':
             case 'preferredinstances':
             case 'preferredinstance':
                 foreach ($data as $classOrAlias => $preferredValueOrValues) {
                     if (is_array($preferredValueOrValues)) {
                         foreach ($preferredValueOrValues as $preferredValue) {
                             $im->addPreferredInstance($classOrAlias, $preferredValue);
                         }
                     } else {
                         $im->addPreferredInstance($classOrAlias, $preferredValueOrValues);
                     }
                 }
         }
     }
 }
Example #2
0
 public function testConfigurationCanConfigureInstanceManagerWithIniFile()
 {
     $ini = new \Zend\Config\Ini(__DIR__ . '/_files/sample.ini', 'section-a');
     $config = new Configuration($ini->di);
     $di = new DependencyInjector($config);
     
     $im = $di->getInstanceManager();
     
     $this->assertTrue($im->hasAlias('my-repository'));
     $this->assertEquals('My\RepositoryA', $im->getClassFromAlias('my-repository'));
     
     $this->assertTrue($im->hasAlias('my-mapper'));
     $this->assertEquals('My\Mapper', $im->getClassFromAlias('my-mapper'));
     
     $this->assertTrue($im->hasAlias('my-dbAdapter'));
     $this->assertEquals('My\DbAdapter', $im->getClassFromAlias('my-dbAdapter'));
     
     $this->assertTrue($im->hasTypePreferences('my-repository'));
     $this->assertContains('my-mapper', $im->getTypePreferences('my-repository'));
     
     $this->assertTrue($im->hasTypePreferences('my-mapper'));
     $this->assertContains('my-dbAdapter', $im->getTypePreferences('my-mapper'));
     
     $this->assertTrue($im->hasConfiguration('My\DbAdapter'));
     $expected = array('parameters' => array('username' => 'readonly', 'password' => 'mypassword'), 'methods' => array());
     $this->assertEquals($expected, $im->getConfiguration('My\DbAdapter'));
     
     $this->assertTrue($im->hasConfiguration('my-dbAdapter'));
     $expected = array('parameters' => array('username' => 'readwrite'), 'methods' => array());
     $this->assertEquals($expected, $im->getConfiguration('my-dbAdapter'));
 }
 /**
  * @group SetterInjection
  */
 public function testNewInstanceWillResolveSetterInjectionDependenciesWithProperties()
 {
     $di = new DependencyInjector();
     
     $im = $di->getInstanceManager();
     $im->setProperty('ZendTest\Di\TestAsset\SetterInjection\X', 'one', 1);
     $im->setProperty('ZendTest\Di\TestAsset\SetterInjection\X', 'two', 2);
     
     $y = $di->newInstance('ZendTest\Di\TestAsset\SetterInjection\Y');
     $this->assertEquals(1, $y->x->one);
     $this->assertEquals(2, $y->x->two);
 }
 /**
  * @param DependencyInjector $di 
  * @return void
  */
 public function __construct(DependencyInjector $di)
 {
     $this->di = $di;
     $this->definition = $di->getDefinition();
     $this->instanceManager = $di->getInstanceManager();
 }
Example #5
0
 public function testNewInstanceWillRunArbitraryMethodsAccordingToConfiguration()
 {
     $di = new DependencyInjector();
     $im = $di->getInstanceManager();
     $im->setMethods('ZendTest\Di\TestAsset\ConfigParameter\A', array(
         'setSomeInt' => array('value' => 5),
         'injectM' => array('m' => 10)
     ));
     $b = $di->newInstance('ZendTest\Di\TestAsset\ConfigParameter\B');
     $this->assertEquals(5, $b->a->someInt);
     $this->assertEquals(10, $b->a->m);
 }
Example #6
0
    public function configureInstance(DependencyInjector $di, $instanceData)
    {
        $im = $di->getInstanceManager();
        
        foreach ($instanceData as $target => $data) {
            switch (strtolower($target)) {
                case 'aliases':
                case 'alias':
                    foreach ($data as $n => $v) {
                        $im->addAlias($n, $v);
                    }
                    break;
                case 'preferences':
                case 'preference':
                    foreach ($data as $n => $v) {
                        if (is_array($v)) {
                            foreach ($v as $v2) {
                                $im->addTypePreference($n, $v2);
                            }
                        } else {
                            $im->addTypePreference($n, $v);
                        }
                    }
                    break;
                default:
                    foreach ($data as $n => $v) {
                        switch ($n) {
                            case 'parameters':
                            case 'parameter':
                                $im->setParameters($target, $v);
                                break;
                            case 'methods':
                            case 'method':
                                $im->setMethods($target, $v);
                                break;
                        }
                    }
            }
        }

    }