4 * This file is part of Twig.
6 * (c) 2009 Fabien Potencier
7 * (c) 2009 Armin Ronacher
9 * For the full copyright and license information, please view the LICENSE
10 * file that was distributed with this source code.
12 class Twig_Node_Expression_Filter
extends Twig_Node_Expression_Call
14 public function __construct(Twig_NodeInterface
$node, Twig_Node_Expression_Constant
$filterName, Twig_NodeInterface
$arguments, $lineno, $tag = null)
16 parent
::__construct(array('node' => $node, 'filter' => $filterName, 'arguments' => $arguments), array(), $lineno, $tag);
19 public function compile(Twig_Compiler
$compiler)
21 $name = $this->getNode('filter')->getAttribute('value');
22 $filter = $compiler->getEnvironment()->getFilter($name);
24 $this->setAttribute('name', $name);
25 $this->setAttribute('type', 'filter');
26 $this->setAttribute('thing', $filter);
27 $this->setAttribute('needs_environment', $filter->needsEnvironment());
28 $this->setAttribute('needs_context', $filter->needsContext());
29 $this->setAttribute('arguments', $filter->getArguments());
30 if ($filter instanceof Twig_FilterCallableInterface
|| $filter instanceof Twig_SimpleFilter
) {
31 $this->setAttribute('callable', $filter->getCallable());
34 $this->compileCallable($compiler);