]>
Commit | Line | Data |
---|---|---|
a4565e88 NL |
1 | <?php |
2 | ||
3 | /* | |
4 | * This file is part of Twig. | |
5 | * | |
6 | * (c) 2012 Fabien Potencier | |
7 | * | |
8 | * For the full copyright and license information, please view the LICENSE | |
9 | * file that was distributed with this source code. | |
10 | */ | |
11 | class Twig_Node_Expression_MethodCall extends Twig_Node_Expression | |
12 | { | |
13 | public function __construct(Twig_Node_Expression $node, $method, Twig_Node_Expression_Array $arguments, $lineno) | |
14 | { | |
15 | parent::__construct(array('node' => $node, 'arguments' => $arguments), array('method' => $method, 'safe' => false), $lineno); | |
16 | ||
17 | if ($node instanceof Twig_Node_Expression_Name) { | |
18 | $node->setAttribute('always_defined', true); | |
19 | } | |
20 | } | |
21 | ||
22 | public function compile(Twig_Compiler $compiler) | |
23 | { | |
24 | $compiler | |
25 | ->subcompile($this->getNode('node')) | |
26 | ->raw('->') | |
27 | ->raw($this->getAttribute('method')) | |
28 | ->raw('(') | |
29 | ; | |
30 | $first = true; | |
31 | foreach ($this->getNode('arguments')->getKeyValuePairs() as $pair) { | |
32 | if (!$first) { | |
33 | $compiler->raw(', '); | |
34 | } | |
35 | $first = false; | |
36 | ||
37 | $compiler->subcompile($pair['value']); | |
38 | } | |
39 | $compiler->raw(')'); | |
40 | } | |
41 | } |