. */ namespace Fisharebest\Webtrees; /** * Simple view/template class. */ class View { /** * @var string The (file) name of the view. */ private $name; /** * @var mixed[] Data to be inserted into the view. */ private $data; /** * Createa view from a template name and optional data. * * @param $name * @param array $data */ public function __construct($name, $data = []) { $this->name = $name; $this->data = $data; } /** * Render a view. * * @return string */ public function render() { extract($this->data); ob_start(); require WT_ROOT . 'resources/views/' . $this->name . '.php'; return ob_get_clean(); } /** * Check whether a view exists. * * @param string $view_name * * @return bool */ public static function exists($view_name) { return file_exists(WT_ROOT . 'resources/views/' . $view_name . '.php'); } /** * Cerate and render a view in a single operation. * * @param string $name * @param mixed[] $data * * @return string */ public static function make($name, $data = []) { $view = new static($name, $data); return $view->render(); } }