4 * This file is part of Twig.
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
13 * Represents a sandbox node.
15 * @author Fabien Potencier <fabien@symfony.com>
17 class Twig_Node_Sandbox extends Twig_Node
19 public function __construct(Twig_NodeInterface $body, $lineno, $tag = null)
21 parent::__construct(array('body' => $body), array(), $lineno, $tag);
24 public function compile(Twig_Compiler $compiler)
28 ->write("\$sandbox = \$this->env->getExtension('Twig_Extension_Sandbox');\n")
29 ->write("if (!\$alreadySandboxed = \$sandbox->isSandboxed()) {\n")
31 ->write("\$sandbox->enableSandbox();\n")
34 ->subcompile($this->getNode('body'))
35 ->write("if (!\$alreadySandboxed) {\n")
37 ->write("\$sandbox->disableSandbox();\n")
44 class_alias('Twig_Node_Sandbox', 'Twig\Node\SandboxNode', false);