/** * Removes tag from holder * * @see parent::remove() * * @param string $tagName * @param mixed $default * @param mixed $ns * * @return null */ public function remove($tagName, $default = null, $ns = null) { if (gettype($tagName) !== 'string') { throw new InvalidArgumentException(sprintf('Name should be typeof "string" (given "%s")', gettype($tagName))); } return parent::remove($tagName, $default, $ns); }
$t->is($ph->has('myfoo', 'symfony/mynamespace'), true, '->has() returns true if the key exists in the namespace given as its second argument'); // ->hasNamespace() $t->diag('->hasNamespace()'); $ph = new sfNamespacedParameterHolder(); $ph->set('foo', 'bar'); $ph->set('myfoo', 'bar', 'symfony/mynamespace'); $t->is($ph->hasNamespace($ph->getDefaultNamespace()), true, '->hasNamespace() returns true for the default namespace'); $t->is($ph->hasNamespace('symfony/mynamespace'), true, '->hasNamespace() returns true if the namespace exists'); $t->is($ph->hasNamespace('symfony/nonexistant'), false, '->hasNamespace() returns false if the namespace does not exist'); // ->remove() $t->diag('->remove()'); $ph = new sfNamespacedParameterHolder(); $ph->set('foo', 'bar'); $ph->set('myfoo', 'bar'); $ph->set('myfoo', 'bar', 'symfony/mynamespace'); $ph->remove('foo'); $t->is($ph->has('foo'), false, '->remove() removes the key from parameters'); $ph->remove('myfoo'); $t->is($ph->has('myfoo'), false, '->remove() removes the key from parameters'); $t->is($ph->has('myfoo', 'symfony/mynamespace'), true, '->remove() removes the key from parameters for a given namespace'); $ph->remove('myfoo', null, 'symfony/mynamespace'); $t->is($ph->has('myfoo', 'symfony/mynamespace'), false, '->remove() takes a namespace as its third argument'); $t->is($ph->remove('nonexistant', 'foobar', 'symfony/mynamespace'), 'foobar', '->remove() takes a default value as its second argument'); $t->is($ph->getAll(), null, '->remove() removes the key from parameters'); // ->removeNamespace() $t->diag('->removeNamespace()'); $ph = new sfNamespacedParameterHolder(); $ph->set('foo', 'bar'); $ph->set('myfoo', 'bar'); $ph->set('myfoo', 'bar', 'symfony/mynamespace'); $ph->removeNamespace($ph->getDefaultNamespace());
$myparameters = array('myfoo' => 'bar', 'mybar' => 'bar'); $ph = new sfNamespacedParameterHolder(); $ph->add($parameters); $ph->add($myparameters, 'symfony/mynamespace'); $t->is($ph->getAll(), $parameters, '->add() adds an array of parameters'); $t->is($ph->getAll('symfony/mynamespace'), $myparameters, '->add() takes a namespace as its second argument'); $foo = 'mybar'; $t->is($ph->getAll(), $parameters, '->add() adds an array of parameters, not a reference'); // ->addByRef() $t->diag('->addByRef()'); $foo = 'bar'; $parameters = array('foo' => &$foo, 'bar' => 'bar'); $myparameters = array('myfoo' => 'bar', 'mybar' => 'bar'); $ph = new sfNamespacedParameterHolder(); $ph->addByRef($parameters); $ph->addByRef($myparameters, 'symfony/mynamespace'); $t->is($parameters, $ph->getAll(), '->add() adds an array of parameters'); $t->is($myparameters, $ph->getAll('symfony/mynamespace'), '->add() takes a namespace as its second argument'); $foo = 'mybar'; $t->is($parameters, $ph->getAll(), '->add() adds a reference of an array of parameters'); // ->serialize() ->unserialize() $t->diag('->serialize() ->unserialize()'); $t->ok($ph == unserialize(serialize($ph)), 'sfNamespacedParameterHolder implements the Serializable interface'); // Array path as a key $t->diag('Array path as a key'); $ph = new sfNamespacedParameterHolder(); $ph->add(array('foo' => array('bar' => 'foo'))); $t->is($ph->has('foo[bar]'), true, '->has() can takes a multi-array key'); $t->is($ph->get('foo[bar]'), 'foo', '->has() can takes a multi-array key'); $t->is($ph->remove('foo[bar]'), 'foo', '->remove() can takes a multi-array key'); $t->is($ph->getAll(), array('foo' => array()), '->remove() can takes a multi-array key');