added getKeyValuePairs() on Twig_Node_Expression_Array

This commit is contained in:
Arnaud Le Blanc
2011-11-12 12:10:50 +01:00
parent 3f64f1d24c
commit 542e9e76dc
+17 -3
View File
@@ -15,6 +15,20 @@ class Twig_Node_Expression_Array extends Twig_Node_Expression
parent::__construct($elements, array(), $lineno);
}
public function getKeyValuePairs()
{
$pairs = array();
foreach (array_chunk($this->nodes, 2) as $pair) {
$pairs[] = array(
'key' => $pair[0],
'value' => $pair[1],
);
}
return $pairs;
}
/**
* Compiles the node to PHP.
*
@@ -24,16 +38,16 @@ class Twig_Node_Expression_Array extends Twig_Node_Expression
{
$compiler->raw('array(');
$first = true;
foreach (array_chunk($this->nodes, 2) as $entry) {
foreach ($this->getKeyValuePairs() as $pair) {
if (!$first) {
$compiler->raw(', ');
}
$first = false;
$compiler
->subcompile($entry[0])
->subcompile($pair['key'])
->raw(' => ')
->subcompile($entry[1])
->subcompile($pair['value'])
;
}
$compiler->raw(')');