ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
Sandbox.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 */
11
18{
19 public function __construct(Twig_NodeInterface $body, $lineno, $tag = null)
20 {
21 parent::__construct(array('body' => $body), array(), $lineno, $tag);
22 }
23
24 public function compile(Twig_Compiler $compiler)
25 {
26 $compiler
27 ->addDebugInfo($this)
28 ->write("\$sandbox = \$this->env->getExtension('Twig_Extension_Sandbox');\n")
29 ->write("if (!\$alreadySandboxed = \$sandbox->isSandboxed()) {\n")
30 ->indent()
31 ->write("\$sandbox->enableSandbox();\n")
32 ->outdent()
33 ->write("}\n")
34 ->subcompile($this->getNode('body'))
35 ->write("if (!\$alreadySandboxed) {\n")
36 ->indent()
37 ->write("\$sandbox->disableSandbox();\n")
38 ->outdent()
39 ->write("}\n")
40 ;
41 }
42}
43
44class_alias('Twig_Node_Sandbox', 'Twig\Node\SandboxNode', false);
An exception for terminatinating execution or to throw for unit testing.
Compiles a node to PHP code.
Definition: Compiler.php:19
addDebugInfo(Twig_NodeInterface $node)
Adds debugging information.
Definition: Compiler.php:212
Represents a sandbox node.
Definition: Sandbox.php:18
__construct(Twig_NodeInterface $body, $lineno, $tag=null)
Definition: Sandbox.php:19
compile(Twig_Compiler $compiler)
Compiles the node to PHP.
Definition: Sandbox.php:24
Represents a node in the AST.
Definition: Node.php:19
$lineno
Definition: Node.php:22
getNode($name)
Definition: Node.php:186
Represents a node in the AST.