[ Index ]

PHP Cross Reference of phpBB-3.3.14-deutsch

title

Body

[close]

/vendor/twig/twig/src/ -> TemplateWrapper.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;
  13  
  14  /**
  15   * Exposes a template to userland.
  16   *
  17   * @author Fabien Potencier <fabien@symfony.com>
  18   */
  19  final class TemplateWrapper
  20  {
  21      private $env;
  22      private $template;
  23  
  24      /**
  25       * This method is for internal use only and should never be called
  26       * directly (use Twig\Environment::load() instead).
  27       *
  28       * @internal
  29       */
  30      public function __construct(Environment $env, Template $template)
  31      {
  32          $this->env = $env;
  33          $this->template = $template;
  34      }
  35  
  36      /**
  37       * Renders the template.
  38       *
  39       * @param array $context An array of parameters to pass to the template
  40       */
  41      public function render(array $context = []): string
  42      {
  43          // using func_get_args() allows to not expose the blocks argument
  44          // as it should only be used by internal code
  45          return $this->template->render($context, \func_get_args()[1] ?? []);
  46      }
  47  
  48      /**
  49       * Displays the template.
  50       *
  51       * @param array $context An array of parameters to pass to the template
  52       */
  53      public function display(array $context = [])
  54      {
  55          // using func_get_args() allows to not expose the blocks argument
  56          // as it should only be used by internal code
  57          $this->template->display($context, \func_get_args()[1] ?? []);
  58      }
  59  
  60      /**
  61       * Checks if a block is defined.
  62       *
  63       * @param string $name    The block name
  64       * @param array  $context An array of parameters to pass to the template
  65       */
  66      public function hasBlock(string $name, array $context = []): bool
  67      {
  68          return $this->template->hasBlock($name, $context);
  69      }
  70  
  71      /**
  72       * Returns defined block names in the template.
  73       *
  74       * @param array $context An array of parameters to pass to the template
  75       *
  76       * @return string[] An array of defined template block names
  77       */
  78      public function getBlockNames(array $context = []): array
  79      {
  80          return $this->template->getBlockNames($context);
  81      }
  82  
  83      /**
  84       * Renders a template block.
  85       *
  86       * @param string $name    The block name to render
  87       * @param array  $context An array of parameters to pass to the template
  88       *
  89       * @return string The rendered block
  90       */
  91      public function renderBlock(string $name, array $context = []): string
  92      {
  93          $context = $this->env->mergeGlobals($context);
  94          $level = ob_get_level();
  95          if ($this->env->isDebug()) {
  96              ob_start();
  97          } else {
  98              ob_start(function () { return ''; });
  99          }
 100          try {
 101              $this->template->displayBlock($name, $context);
 102          } catch (\Throwable $e) {
 103              while (ob_get_level() > $level) {
 104                  ob_end_clean();
 105              }
 106  
 107              throw $e;
 108          }
 109  
 110          return ob_get_clean();
 111      }
 112  
 113      /**
 114       * Displays a template block.
 115       *
 116       * @param string $name    The block name to render
 117       * @param array  $context An array of parameters to pass to the template
 118       */
 119      public function displayBlock(string $name, array $context = [])
 120      {
 121          $this->template->displayBlock($name, $this->env->mergeGlobals($context));
 122      }
 123  
 124      public function getSourceContext(): Source
 125      {
 126          return $this->template->getSourceContext();
 127      }
 128  
 129      public function getTemplateName(): string
 130      {
 131          return $this->template->getTemplateName();
 132      }
 133  
 134      /**
 135       * @internal
 136       *
 137       * @return Template
 138       */
 139      public function unwrap()
 140      {
 141          return $this->template;
 142      }
 143  }
 144  
 145  class_alias('Twig\TemplateWrapper', 'Twig_TemplateWrapper');


Generated: Mon Nov 25 19:05:08 2024 Cross-referenced by PHPXref 0.7.1