52 lines
1006 B
PHP
Executable File
52 lines
1006 B
PHP
Executable File
<?php
|
|
|
|
namespace Kirby\Toolkit;
|
|
|
|
use Kirby\Filesystem\F;
|
|
use Throwable;
|
|
|
|
/**
|
|
* Simple PHP template engine
|
|
*
|
|
* @package Kirby Toolkit
|
|
* @author Bastian Allgeier <bastian@getkirby.com>
|
|
* @link https://getkirby.com
|
|
* @copyright Bastian Allgeier
|
|
* @license https://opensource.org/licenses/MIT
|
|
*/
|
|
class Tpl
|
|
{
|
|
/**
|
|
* Renders the template
|
|
*
|
|
* @param string|null $file
|
|
* @param array $data
|
|
* @return string
|
|
* @throws Throwable
|
|
*/
|
|
public static function load(?string $file = null, array $data = []): string
|
|
{
|
|
if ($file === null || is_file($file) === false) {
|
|
return '';
|
|
}
|
|
|
|
ob_start();
|
|
|
|
$exception = null;
|
|
try {
|
|
F::load($file, null, $data);
|
|
} catch (Throwable $e) {
|
|
$exception = $e;
|
|
}
|
|
|
|
$content = ob_get_contents();
|
|
ob_end_clean();
|
|
|
|
if ($exception === null) {
|
|
return $content;
|
|
}
|
|
|
|
throw $exception;
|
|
}
|
|
}
|