ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
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 
44 class_alias('Twig_Node_Sandbox', 'Twig\Node\SandboxNode', false);
$lineno
Definition: Node.php:22
Represents a node in the AST.
Represents a node in the AST.
Definition: Node.php:18
Represents a sandbox node.
Definition: Sandbox.php:17
compile(Twig_Compiler $compiler)
Compiles the node to PHP.
Definition: Sandbox.php:24
Create styles array
The data for the language used.
getNode($name)
Definition: Node.php:186
__construct(Twig_NodeInterface $body, $lineno, $tag=null)
Definition: Sandbox.php:19
addDebugInfo(Twig_NodeInterface $node)
Adds debugging information.
Definition: Compiler.php:212