[ Index ]

PHP Cross Reference of phpBB-3.3.11-deutsch

title

Body

[close]

/vendor/twig/twig/src/Node/ -> SandboxNode.php (source)

   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  
  12  namespace Twig\Node;
  13  
  14  use Twig\Compiler;
  15  
  16  /**
  17   * Represents a sandbox node.
  18   *
  19   * @author Fabien Potencier <fabien@symfony.com>
  20   */
  21  class SandboxNode extends Node
  22  {
  23      public function __construct(Node $body, int $lineno, string $tag = null)
  24      {
  25          parent::__construct(['body' => $body], [], $lineno, $tag);
  26      }
  27  
  28      public function compile(Compiler $compiler)
  29      {
  30          $compiler
  31              ->addDebugInfo($this)
  32              ->write("if (!\$alreadySandboxed = \$this->sandbox->isSandboxed()) {\n")
  33              ->indent()
  34              ->write("\$this->sandbox->enableSandbox();\n")
  35              ->outdent()
  36              ->write("}\n")
  37              ->write("try {\n")
  38              ->indent()
  39              ->subcompile($this->getNode('body'))
  40              ->outdent()
  41              ->write("} finally {\n")
  42              ->indent()
  43              ->write("if (!\$alreadySandboxed) {\n")
  44              ->indent()
  45              ->write("\$this->sandbox->disableSandbox();\n")
  46              ->outdent()
  47              ->write("}\n")
  48              ->outdent()
  49              ->write("}\n")
  50          ;
  51      }
  52  }
  53  
  54  class_alias('Twig\Node\SandboxNode', 'Twig_Node_Sandbox');


Generated: Sat Nov 4 14:26:03 2023 Cross-referenced by PHPXref 0.7.1