A super easy PHP Framework for web development!
https://github.com/exacti/phacil-framework
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
128 lines
3.1 KiB
128 lines
3.1 KiB
6 years ago
|
<?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.
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* Exposes a template to userland.
|
||
|
*
|
||
|
* @author Fabien Potencier <fabien@symfony.com>
|
||
|
*/
|
||
|
final class Twig_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(Twig_Environment $env, Twig_Template $template)
|
||
|
{
|
||
|
$this->env = $env;
|
||
|
$this->template = $template;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Renders the template.
|
||
|
*
|
||
|
* @param array $context An array of parameters to pass to the template
|
||
|
*
|
||
|
* @return string The rendered template
|
||
|
*/
|
||
|
public function render($context = array())
|
||
|
{
|
||
|
return $this->template->render($context);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Displays the template.
|
||
|
*
|
||
|
* @param array $context An array of parameters to pass to the template
|
||
|
*/
|
||
|
public function display($context = array())
|
||
|
{
|
||
|
$this->template->display($context);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Checks if a block is defined.
|
||
|
*
|
||
|
* @param string $name The block name
|
||
|
* @param array $context An array of parameters to pass to the template
|
||
|
*
|
||
|
* @return bool
|
||
|
*/
|
||
|
public function hasBlock($name, $context = array())
|
||
|
{
|
||
|
return $this->template->hasBlock($name, $context);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns defined block names in the template.
|
||
|
*
|
||
|
* @param array $context An array of parameters to pass to the template
|
||
|
*
|
||
|
* @return string[] An array of defined template block names
|
||
|
*/
|
||
|
public function getBlockNames($context = array())
|
||
|
{
|
||
|
return $this->template->getBlockNames($context);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Renders a template block.
|
||
|
*
|
||
|
* @param string $name The block name to render
|
||
|
* @param array $context An array of parameters to pass to the template
|
||
|
*
|
||
|
* @return string The rendered block
|
||
|
*/
|
||
|
public function renderBlock($name, $context = array())
|
||
|
{
|
||
|
$context = $this->env->mergeGlobals($context);
|
||
|
$level = ob_get_level();
|
||
|
ob_start();
|
||
|
try {
|
||
|
$this->template->displayBlock($name, $context);
|
||
|
} catch (Throwable $e) {
|
||
|
while (ob_get_level() > $level) {
|
||
|
ob_end_clean();
|
||
|
}
|
||
|
|
||
|
throw $e;
|
||
|
}
|
||
|
|
||
|
return ob_get_clean();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Displays a template block.
|
||
|
*
|
||
|
* @param string $name The block name to render
|
||
|
* @param array $context An array of parameters to pass to the template
|
||
|
*/
|
||
|
public function displayBlock($name, $context = array())
|
||
|
{
|
||
|
$this->template->displayBlock($name, $this->env->mergeGlobals($context));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @return Twig_Source
|
||
|
*/
|
||
|
public function getSourceContext()
|
||
|
{
|
||
|
return $this->template->getSourceContext();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class_alias('Twig_TemplateWrapper', 'Twig\TemplateWrapper', false);
|