/** * Escapes all the variables passed using 'with' * * @param \Twig_Node_Expression_Array $vars * @param int $lineno * @return \Twig_Node_Expression_Array */ protected function escapeWithVariables($vars, $lineno) { $pairs = $vars->getKeyValuePairs(); $vars = new \Twig_Node_Expression_Array(array(), $lineno); foreach ($pairs as $pair) { $vars->addElement($this->escapeNodeIfNecessary($pair['value'], $lineno), $pair['key']); } return $vars; }
/** * @param ArrayNode $node * @return array */ protected function nodeToArray(ArrayNode $node) { $array = array(); foreach ($node->getKeyValuePairs() as $pair) { if (!$pair['key'] instanceof ConstantNode) { continue; } $array[$pair['key']->getAttribute('value')] = $pair['value']; } return $array; }
/** * @param ArrayNode $node * @return array */ private function collectConstantValues(ArrayNode $node) { $values = array(); foreach ($node->getKeyValuePairs() as $pair) { if (!$pair['key'] instanceof ConstantNode) { continue; } $value = null; if ($pair['value'] instanceof ConstantNode) { $value = $pair['value']->getAttribute('value'); } elseif ($pair['value'] instanceof ArrayNode) { $value = $this->collectConstantValues($pair['value']); } $values[$pair['key']->getAttribute('value')] = $value; } return $values; }