Exemplo n.º 1
0
 public function testGettersAndSetters()
 {
     $arr = $this->object->getArray();
     $this->assertEquals($arr, $this->object->getArray());
     $arr['newProp'] = "ohyeah";
     $this->assertNotEquals($arr, $this->object->getArray());
     $this->object->setArray($arr);
     $this->assertEquals($arr, $this->object->getArray());
 }
Exemplo n.º 2
0
Arquivo: Container.php Projeto: fwk/di
 /**
  * Registers a definition
  * 
  * @param string  $name             Identifier
  * @param DefinitionInterface|mixed $definition Definition, callable or value
  *
  * @return Container
  */
 public function set($name, $definition)
 {
     if (!$definition instanceof DefinitionInterface) {
         if (is_callable($definition)) {
             $definition = CallableDefinition::factory($definition);
         } elseif (is_array($definition)) {
             $definition = ArrayDefinition::factory($definition);
         } else {
             $wasObj = is_object($definition);
             $definition = ScalarDefinition::factory($definition);
             if ($wasObj) {
                 $definition->setShared(true);
                 $this->_sharedInstances->attach($definition, $name);
             }
         }
     }
     $event = new BeforeServiceRegisteredEvent($this, $name, $definition);
     $this->notify($event);
     if ($event->isStopped()) {
         return $this;
     }
     $this->store->attach($definition, $name);
     $this->notify(new AfterServiceRegisteredEvent($this, $name, $definition));
     return $this;
 }
Exemplo n.º 3
0
 /**
  * Converts XML Array definitions from parsing results
  * 
  * @param array     $arrayDefs Parsing results
  * @param Container $container The Di Container
  * 
  * @return void
  */
 protected function applyArrayDefinitions(array $arrayDefs, Container $container)
 {
     foreach ($arrayDefs as $name => $infos) {
         $shared = (bool) $this->transformValueType($infos['shared']);
         $array = array();
         foreach ($infos['params'] as $mnfos) {
             $key = empty($mnfos['key']) ? null : $mnfos['key'];
             $val = $this->transformValueType($mnfos['value']);
             if (!empty($key)) {
                 $array[$key] = $val;
             } else {
                 $array[] = $val;
             }
         }
         $def = ArrayDefinition::factory($array)->setShared($shared)->setData($infos['data']);
         $container->set($name, $def);
     }
 }