diff options
author | Simon Rettberg | 2023-10-02 18:01:05 +0200 |
---|---|---|
committer | Simon Rettberg | 2023-10-02 18:01:05 +0200 |
commit | c8e975a0151c74ea731dc709640310222d884297 (patch) | |
tree | 62688c460ac71b65a205344e7a6d78a6ab5a96ee /Mustache/LambdaHelper.php | |
parent | Disable deprecated warnings when not in debug mode (diff) | |
download | slx-admin-c8e975a0151c74ea731dc709640310222d884297.tar.gz slx-admin-c8e975a0151c74ea731dc709640310222d884297.tar.xz slx-admin-c8e975a0151c74ea731dc709640310222d884297.zip |
Update Mustache to 46286a1
Diffstat (limited to 'Mustache/LambdaHelper.php')
-rw-r--r-- | Mustache/LambdaHelper.php | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/Mustache/LambdaHelper.php b/Mustache/LambdaHelper.php new file mode 100644 index 00000000..e93dbfa3 --- /dev/null +++ b/Mustache/LambdaHelper.php @@ -0,0 +1,76 @@ +<?php + +/* + * This file is part of Mustache.php. + * + * (c) 2010-2017 Justin Hileman + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Mustache Lambda Helper. + * + * Passed as the second argument to section lambdas (higher order sections), + * giving them access to a `render` method for rendering a string with the + * current context. + */ +class Mustache_LambdaHelper +{ + private $mustache; + private $context; + private $delims; + + /** + * Mustache Lambda Helper constructor. + * + * @param Mustache_Engine $mustache Mustache engine instance + * @param Mustache_Context $context Rendering context + * @param string $delims Optional custom delimiters, in the format `{{= <% %> =}}`. (default: null) + */ + public function __construct(Mustache_Engine $mustache, Mustache_Context $context, $delims = null) + { + $this->mustache = $mustache; + $this->context = $context; + $this->delims = $delims; + } + + /** + * Render a string as a Mustache template with the current rendering context. + * + * @param string $string + * + * @return string Rendered template + */ + public function render($string) + { + return $this->mustache + ->loadLambda((string) $string, $this->delims) + ->renderInternal($this->context); + } + + /** + * Render a string as a Mustache template with the current rendering context. + * + * @param string $string + * + * @return string Rendered template + */ + public function __invoke($string) + { + return $this->render($string); + } + + /** + * Get a Lambda Helper with custom delimiters. + * + * @param string $delims Custom delimiters, in the format `{{= <% %> =}}` + * + * @return Mustache_LambdaHelper + */ + public function withDelimiters($delims) + { + return new self($this->mustache, $this->context, $delims); + } +} |