You are here

MethodCall.php in Zircon Profile 8

Same filename and directory in other branches
  1. 8.0 vendor/twig/twig/lib/Twig/Node/Expression/MethodCall.php

File

vendor/twig/twig/lib/Twig/Node/Expression/MethodCall.php
View source
<?php

/*
 * This file is part of Twig.
 *
 * (c) 2012 Fabien Potencier
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
class Twig_Node_Expression_MethodCall extends Twig_Node_Expression {
  public function __construct(Twig_Node_Expression $node, $method, Twig_Node_Expression_Array $arguments, $lineno) {
    parent::__construct(array(
      'node' => $node,
      'arguments' => $arguments,
    ), array(
      'method' => $method,
      'safe' => false,
    ), $lineno);
    if ($node instanceof Twig_Node_Expression_Name) {
      $node
        ->setAttribute('always_defined', true);
    }
  }
  public function compile(Twig_Compiler $compiler) {
    $compiler
      ->subcompile($this
      ->getNode('node'))
      ->raw('->')
      ->raw($this
      ->getAttribute('method'))
      ->raw('(');
    $first = true;
    foreach ($this
      ->getNode('arguments')
      ->getKeyValuePairs() as $pair) {
      if (!$first) {
        $compiler
          ->raw(', ');
      }
      $first = false;
      $compiler
        ->subcompile($pair['value']);
    }
    $compiler
      ->raw(')');
  }

}