/** * Return a value from this collection * * @param string $key * @return \s9e\TextFormatter\Configurator\Items\ProgrammableCallback */ public function get($key) { $key = $this->normalizeKey($key); if (!$this->exists($key)) { if ($key[0] === '#') { $this->set($key, self::getDefaultFilter(substr($key, 1))); } else { $this->set($key, new AttributeFilter($key)); } } // Get the filter from the collection $filter = parent::get($key); // Clone it to preserve the original instance $filter = clone $filter; return $filter; }
/** * @testdox add() replaces the original element if the onDuplicate action is "replace" */ public function testOnDuplicateReplace() { $collection = new NormalizedCollection(); $collection->onDuplicate('replace'); $collection->add('foo', 'bar'); $collection->add('foo', 'baz'); $this->assertSame('baz', $collection->get('foo')); }