for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace Yiisoft\View;
class PhpTemplateRenderer implements TemplateRendererInterface
{
public function render(View $view, string $template, array $params): string
$renderer = function () {
extract(func_get_arg(1), EXTR_OVERWRITE);
require func_get_arg(0);
};
$obInitialLevel = ob_get_level();
ob_start();
ob_implicit_flush(0);
try {
$renderer->bindTo($view)($template, $params);
return ob_get_clean();
} catch (\Throwable $e) {
while (ob_get_level() > $obInitialLevel) {
if (!@ob_end_clean()) {
ob_clean();
}
throw $e;