public function Twig_Node_ForLoop::compile in Zircon Profile 8
Same name and namespace in other branches
- 8.0 vendor/twig/twig/lib/Twig/Node/ForLoop.php \Twig_Node_ForLoop::compile()
Compiles the node to PHP.
Parameters
Twig_Compiler $compiler A Twig_Compiler instance:
Overrides Twig_Node::compile
File
- vendor/
twig/ twig/ lib/ Twig/ Node/ ForLoop.php, line 24
Class
- Twig_Node_ForLoop
- Internal node used by the for node.
Code
public function compile(Twig_Compiler $compiler) {
if ($this
->getAttribute('else')) {
$compiler
->write("\$context['_iterated'] = true;\n");
}
if ($this
->getAttribute('with_loop')) {
$compiler
->write("++\$context['loop']['index0'];\n")
->write("++\$context['loop']['index'];\n")
->write("\$context['loop']['first'] = false;\n");
if (!$this
->getAttribute('ifexpr')) {
$compiler
->write("if (isset(\$context['loop']['length'])) {\n")
->indent()
->write("--\$context['loop']['revindex0'];\n")
->write("--\$context['loop']['revindex'];\n")
->write("\$context['loop']['last'] = 0 === \$context['loop']['revindex0'];\n")
->outdent()
->write("}\n");
}
}
}