dakata__92
Super Moderator
Колеги, написах си един клас за прости темплейтни системи, но ми дава много ограничения какъв код при сетване да ми замества. Основно само стринг грябва да е, което е и логично естествено но искам да го подобря. Много ме ограничава.
Викам го така:
Така работи, но някак си не е гъвкаво писането. Трябва всеки един масив ако ми се налага да въвеждам някъде предварително да го разпиша и немога функции да ползвам някак си ми е постен. Помогнете а ето го и самият клас.
Викам го така:
PHP:
$template = TemplateEngine::getInstance();
$template->set("title",'Заглавие');
$template->set("body", $template->render('t2.tpl'));
$template->set("profile",'Профил текст');
print $template->render('t1.tpl');
PHP:
<?php
namespace System\Core;
class TemplateEngine
{
use \System\Traits\Singleton;
private $file = false;
private $data = array();
public function set($key, $value)
{
$this->data[$key] = $value;
}
public function render($file)
{
if ($this->isFileExists($file)) {
$this->file = $file;
}
$fgc = file_get_contents($this->file);
foreach ($this->data as $key => $value) {
$tagToReplace = "{[$key]}";
$fgc = str_replace($tagToReplace, $value, $fgc);
}
return $fgc;
}
private function isFileExists($file)
{
if (file_exists($file) and is_readable($file)) {
return true;
}
throw new \Exception("File not exists or it is not readable!");
}
}