get_called_class() ]; } final public static function template(){ if(is_null(static::$template) && method_exists(get_called_class(), 'setup')){ static::setup(); } $template = static::$template ?? static::name(); if(is_string($template)){ $template = Template::get($template); }elseif(is_array($template)){ $template = new Template($template['name'], $template['fn']); } return $template; } final public static function render(array $data = []) : string{ $data = array_merge(static::data(), $data); return static::template()->run($data); } final public static function cache(){ foreach(self::views() as $view){ if(method_exists($view, 'setup')){ $view::setup(); } $template = $view::template(); if(!is_null($template)){ $template->to_file(); } } } } ?>