ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
MethodCall.php
Go to the documentation of this file.
1 <?php
2 
3 /*
4  * This file is part of Twig.
5  *
6  * (c) 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  */
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 }
42 
43 class_alias('Twig_Node_Expression_MethodCall', 'Twig\Node\Expression\MethodCallExpression', false);
$lineno
Definition: Node.php:22
raw($string)
Adds a raw string to the compiled code.
Definition: Compiler.php:112
subcompile(Twig_NodeInterface $node, $raw=true)
Definition: Compiler.php:94
compile(Twig_Compiler $compiler)
Compiles the node to PHP.
Definition: MethodCall.php:22
Abstract class for all nodes that represents an expression.
Definition: Expression.php:18
getAttribute($name)
Definition: Node.php:152
getNode($name)
Definition: Node.php:186
setAttribute($name, $value)
Definition: Node.php:165
__construct(Twig_Node_Expression $node, $method, Twig_Node_Expression_Array $arguments, $lineno)
Definition: MethodCall.php:13