public function testInstantiateExplicitlyDisabledSingletonLeafes()
 {
     $config = array('YadifFoo' => array('class' => 'YadifFoo', 'scope' => Yadif_Container::SCOPE_SINGLETON, 'arguments' => array('YadifBaz', 'YadifBaz'), 'methods' => array()), 'YadifBaz' => array('class' => 'YadifBaz', 'scope' => Yadif_Container::SCOPE_PROTOTYPE, 'arguments' => array(), 'methods' => array()));
     $yadif = new Yadif_Container($config);
     $component = $yadif->getComponent("YadifFoo");
     $this->assertFalse($component->a === $component->b, 'Not Enforcing singleton of object did not work!');
 }
Exemple #2
0
 public function testBindMethodParamInConfigurationThroughParametersKey()
 {
     $config = array('YadifBaz' => array('class' => 'YadifBaz', 'methods' => array(array('method' => 'setA', 'arguments' => array(':foo'), 'params' => array(':foo' => 'bar')))));
     $yadif = new Yadif_Container($config);
     $component = $yadif->getComponent("YadifBaz");
     $this->assertEquals("bar", $component->a);
 }
 public function testMergeContainerUsesConfigOfOtherIfOwnHasNone()
 {
     $config = new Zend_Config(array("bar" => "baz"));
     $c1 = new Yadif_Container(array());
     $c2 = new Yadif_Container(array(), $config);
     $c1->merge($c2);
     $this->assertEquals($config, $c1->getConfig());
 }
Exemple #4
0
 /**
  * Merge two Containers
  *
  * @todo   Handle duplicates, currently array_merge overwrites them
  * @param  Yadif_Container $container
  * @return Yadif_Container
  */
 public function merge(Yadif_Container $container)
 {
     $this->_container = array_merge($this->_container, $container->getContainer());
     $this->_instances = array_merge($this->_instances, $container->getInstances());
     $otherConfig = $container->getConfig();
     $ownConfig = $this->getConfig();
     if ($otherConfig instanceof Zend_Config) {
         if ($ownConfig == null) {
             $this->setConfig($otherConfig);
         } else {
             if ($ownConfig->readOnly() == true) {
                 $this->setConfig(new Zend_Config(array_merge($ownConfig->toArray(), $otherConfig->toArray())));
             } else {
                 $this->setConfig($ownConfig->merge($otherConfig));
             }
         }
     }
     return $this;
 }
 public function testDecorateInstance()
 {
     $config = array('YadifBaz' => array('class' => 'YadifBaz', 'decorateWith' => array('YadifBar', 'YadifFoo')), 'YadifBar' => array('arguments' => array('DecoratedInstance')), 'YadifFoo' => array('arguments' => array('DecoratedInstance')));
     $yadif = new Yadif_Container($config);
     $baz = $yadif->getComponent('YadifBaz');
     $this->assertType('YadifFoo', $baz);
     $this->assertType('YadifBar', $baz->a);
     $this->assertType('YadifBaz', $baz->a->a);
 }