shop.balmet.com

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

MethodCall.php (1244B)


      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 }