56 lines
1.1 KiB
PHP
56 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace kernel;
|
|
|
|
class CgView
|
|
{
|
|
public string $viewPath = '';
|
|
public bool|string $layout = false;
|
|
|
|
public function __construct()
|
|
{
|
|
|
|
}
|
|
|
|
public function render(string $view, array $data = []): void
|
|
{
|
|
$content = $this->createContent($view, $data);
|
|
|
|
echo $content;
|
|
}
|
|
|
|
public function fetch(string $view, array $data = []): false|string
|
|
{
|
|
$content = $this->createContent($view, $data);
|
|
|
|
return $content;
|
|
}
|
|
|
|
private function createContent(string $view, array $data = []): false|string
|
|
{
|
|
ob_start();
|
|
|
|
foreach ($data as $key => $datum){
|
|
${"$key"} = $datum;
|
|
}
|
|
|
|
include ($this->viewPath . $view);
|
|
|
|
$content = ob_get_contents();
|
|
ob_end_clean ();
|
|
|
|
ob_start();
|
|
$file_content = $content;
|
|
|
|
if ($this->layout){
|
|
if (file_exists($this->viewPath . $this->layout)){
|
|
include ($this->viewPath . $this->layout);
|
|
$file_content = ob_get_contents();
|
|
}
|
|
}
|
|
ob_end_clean ();
|
|
|
|
return $file_content;
|
|
}
|
|
|
|
} |