/** * Returns a parameter holder as an array. * * @param sfParameterHolder $parameterHolder A sfParameterHolder instance * @param boolean $removeObjects when set to true, objects are removed. default is false for BC. * * @return array The parameter holder as an array */ public static function flattenParameterHolder($parameterHolder, $removeObjects = false) { $values = array(); if ($parameterHolder instanceof sfNamespacedParameterHolder) { foreach ($parameterHolder->getNamespaces() as $ns) { $values[$ns] = array(); foreach ($parameterHolder->getAll($ns) as $key => $value) { $values[$ns][$key] = $value; } ksort($values[$ns]); } } else { foreach ($parameterHolder->getAll() as $key => $value) { $values[$key] = $value; } } if ($removeObjects) { $values = self::removeObjects($values); } ksort($values); return $values; }
$t->is($ph->get('foo[bars][]'), $ph->get('foo[bars]'), '->get() returns an array even if you omit the []'); // ->getNames() $t->diag('->getNames()'); $ph = new sfParameterHolder(); $ph->set('foo', 'bar'); $ph->set('yourfoo', 'bar'); $ph->set('myfoo', 'bar', 'symfony/mynamespace'); $t->is($ph->getNames(), array('foo', 'yourfoo'), '->getNames() returns all key names for the default namespace'); $t->is($ph->getNames('symfony/mynamespace'), array('myfoo'), '->getNames() takes a namepace as its first argument'); // ->getNamespaces() $t->diag('->getNamespaces()'); $ph = new sfParameterHolder(); $ph->set('foo', 'bar'); $ph->set('yourfoo', 'bar'); $ph->set('myfoo', 'bar', 'symfony/mynamespace'); $t->is($ph->getNamespaces(), array($ph->getDefaultNamespace(), 'symfony/mynamespace'), '->getNamespaces() returns all non empty namespaces'); // ->getAll() $t->diag('->getAll()'); $parameters = array('foo' => 'bar', 'myfoo' => 'bar'); $ph = new sfParameterHolder(); $ph->add($parameters); $ph->set('myfoo', 'bar', 'symfony/mynamespace'); $t->is($ph->getAll(), $parameters, '->getAll() returns all parameters from the default namespace'); // ->has() $t->diag('->has()'); $ph = new sfParameterHolder(); $ph->set('foo', 'bar'); $ph->set('myfoo', 'bar', 'symfony/mynamespace'); $t->is($ph->has('foo'), true, '->has() returns true if the key exists'); $t->is($ph->has('bar'), false, '->has() returns false if the key does not exist'); $t->is($ph->has('myfoo'), false, '->has() returns false if the key exists but in another namespace');