git subrepo commit (merge) mailcow/src/mailcow-dockerized
subrepo: subdir: "mailcow/src/mailcow-dockerized"
merged: "32243e56"
upstream: origin: "https://github.com/mailcow/mailcow-dockerized.git"
branch: "master"
commit: "e2b4b6f6"
git-subrepo: version: "0.4.3"
origin: "???"
commit: "???"
Change-Id: I51e2016ef5ab88a8b0bdc08551b18f48ceef0aa5
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/twig/twig/src/TemplateWrapper.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/twig/twig/src/TemplateWrapper.php
new file mode 100644
index 0000000..c9c6b07
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/twig/twig/src/TemplateWrapper.php
@@ -0,0 +1,109 @@
+<?php
+
+/*
+ * This file is part of Twig.
+ *
+ * (c) Fabien Potencier
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Twig;
+
+/**
+ * Exposes a template to userland.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ */
+final class TemplateWrapper
+{
+ private $env;
+ private $template;
+
+ /**
+ * This method is for internal use only and should never be called
+ * directly (use Twig\Environment::load() instead).
+ *
+ * @internal
+ */
+ public function __construct(Environment $env, Template $template)
+ {
+ $this->env = $env;
+ $this->template = $template;
+ }
+
+ public function render(array $context = []): string
+ {
+ // using func_get_args() allows to not expose the blocks argument
+ // as it should only be used by internal code
+ return $this->template->render($context, \func_get_args()[1] ?? []);
+ }
+
+ public function display(array $context = [])
+ {
+ // using func_get_args() allows to not expose the blocks argument
+ // as it should only be used by internal code
+ $this->template->display($context, \func_get_args()[1] ?? []);
+ }
+
+ public function hasBlock(string $name, array $context = []): bool
+ {
+ return $this->template->hasBlock($name, $context);
+ }
+
+ /**
+ * @return string[] An array of defined template block names
+ */
+ public function getBlockNames(array $context = []): array
+ {
+ return $this->template->getBlockNames($context);
+ }
+
+ public function renderBlock(string $name, array $context = []): string
+ {
+ $context = $this->env->mergeGlobals($context);
+ $level = ob_get_level();
+ if ($this->env->isDebug()) {
+ ob_start();
+ } else {
+ ob_start(function () { return ''; });
+ }
+ try {
+ $this->template->displayBlock($name, $context);
+ } catch (\Throwable $e) {
+ while (ob_get_level() > $level) {
+ ob_end_clean();
+ }
+
+ throw $e;
+ }
+
+ return ob_get_clean();
+ }
+
+ public function displayBlock(string $name, array $context = [])
+ {
+ $this->template->displayBlock($name, $this->env->mergeGlobals($context));
+ }
+
+ public function getSourceContext(): Source
+ {
+ return $this->template->getSourceContext();
+ }
+
+ public function getTemplateName(): string
+ {
+ return $this->template->getTemplateName();
+ }
+
+ /**
+ * @internal
+ *
+ * @return Template
+ */
+ public function unwrap()
+ {
+ return $this->template;
+ }
+}