Final Class Yiisoft\View\PhpTemplateRenderer
| Inheritance | Yiisoft\View\PhpTemplateRenderer |
|---|---|
| Implements | Yiisoft\View\TemplateRendererInterface |
PhpTemplateRenderer renders the PHP views.
Public Methods
| Method | Description | Defined By |
|---|---|---|
| render() | Yiisoft\View\PhpTemplateRenderer |
Method Details
| public string render ( Yiisoft\View\ViewInterface $view, string $template, array $parameters ) | ||
| $view | Yiisoft\View\ViewInterface | |
| $template | string | |
| $parameters | array | |
public function render(ViewInterface $view, string $template, array $parameters): string
{
$renderer = function (): void {
/** @psalm-suppress MixedArgument, PossiblyFalseArgument */
extract(func_get_arg(1), EXTR_OVERWRITE);
/** @psalm-suppress UnresolvableInclude */
require func_get_arg(0);
};
$obInitialLevel = ob_get_level();
ob_start();
ob_implicit_flush(false);
try {
/** @psalm-suppress PossiblyInvalidFunctionCall,PossiblyNullFunctionCall */
$renderer->bindTo($view)($template, $parameters);
/**
* @var string We assume that in this case active output buffer is always existed, so `ob_get_clean()`
* returns a string.
*/
return ob_get_clean();
} catch (Throwable $e) {
while (ob_get_level() > $obInitialLevel) {
ob_end_clean();
}
throw $e;
}
}
Signup or Login in order to comment.