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()); }
/** * 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; }
/** * 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); } }