You are here

public function Twig_Node_Sandbox::compile in Translation template extractor 7.3

Same name and namespace in other branches
  1. 6.3 vendor/Twig/Node/Sandbox.php \Twig_Node_Sandbox::compile()

Compiles the node to PHP.

Parameters

Twig_Compiler $compiler A Twig_Compiler instance:

Overrides Twig_Node::compile

File

vendor/Twig/Node/Sandbox.php, line 24

Class

Twig_Node_Sandbox
Represents a sandbox node.

Code

public function compile(Twig_Compiler $compiler) {
  $compiler
    ->addDebugInfo($this)
    ->write("\$sandbox = \$this->env->getExtension('sandbox');\n")
    ->write("if (!\$alreadySandboxed = \$sandbox->isSandboxed()) {\n")
    ->indent()
    ->write("\$sandbox->enableSandbox();\n")
    ->outdent()
    ->write("}\n")
    ->subcompile($this
    ->getNode('body'))
    ->write("if (!\$alreadySandboxed) {\n")
    ->indent()
    ->write("\$sandbox->disableSandbox();\n")
    ->outdent()
    ->write("}\n");
}