Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
100.00% |
1 / 1 |
|
100.00% |
5 / 5 |
CRAP | |
100.00% |
15 / 15 |
Template | |
100.00% |
1 / 1 |
|
100.00% |
5 / 5 |
8 | |
100.00% |
15 / 15 |
__construct | |
100.00% |
1 / 1 |
1 | |
100.00% |
4 / 4 |
|||
__toString | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
get | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
exists | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
toHtml | |
100.00% |
1 / 1 |
4 | |
100.00% |
8 / 8 |
<?php | |
namespace Win\Templates; | |
use Throwable; | |
use Win\Application; | |
/** | |
* Templates em .PHTML | |
* Ver arquivos em: "templates/" | |
*/ | |
class Template | |
{ | |
public static $dir = 'templates'; | |
public Application $app; | |
/** | |
* Endereço completo do arquivo .phtml | |
* @var string | |
*/ | |
protected string $file; | |
protected $data = []; | |
/** | |
* Cria um template com base no arquivo escolhido | |
* @param string $file Nome do arquivo | |
* @param mixed[] $data Array de variáveis | |
*/ | |
public function __construct($file, $data = []) | |
{ | |
$this->app = Application::app(); | |
$this->file = BASE_PATH . '/' . static::$dir . "/$file.phtml"; | |
$this->data = $data; | |
} | |
/** | |
* Carrega e retorna o output | |
* @return string | |
*/ | |
public function __toString() | |
{ | |
return (string) $this->toHtml(); | |
} | |
/** | |
* Retorna uma variável | |
* @param string $name | |
* @return mixed|null | |
*/ | |
public function get($name) | |
{ | |
return $this->data[$name] ?? null; | |
} | |
/** | |
* Retorna TRUE se o template existe | |
* @return bool | |
*/ | |
public function exists() | |
{ | |
return file_exists($this->file); | |
} | |
/** | |
* Carrega e retorna o output | |
* @return string | |
*/ | |
protected function toHtml() | |
{ | |
ob_start(); | |
try { | |
if (isset($this->file) && $this->exists()) { | |
extract($this->data); | |
include $this->file; | |
} | |
} catch (Throwable $e) { | |
ob_get_clean(); | |
throw $e; | |
} | |
return ob_get_clean(); | |
} | |
} |