Я искал в Интернете учебник по созданию движка шаблонов.Я знаю, что существует множество движков, таких как smarty, twig и pattemplate, которые могут делать именно то, что я хочу, но я ищу, как их создать.Я начал с шаблонизатора, который добавил строки в массив, а затем отобразил массив.С тех пор я построил один, используя eval()
(см. Ниже).
<// Define links & folders
define("ROOT_HTTP", "http://" . $_SERVER['HTTP_HOST'] . "/preprocessor");
define("TEMPLATE", "/template");
// Get the template file
$template = file_get_contents("template/template.php");
// Replace
$template = str_replace("<x Title x>", displayTitle(), $template);
$template = str_replace("<x Menu x>", displayMenu(), $template);
$template = str_replace("<x Content x>", displayContent(), $template);
$result = @eval("?>" . $template . "<?");
function displayMenu(){
return "Link1<br />" .
"Link2<br />" .
"Link3<br />";
}
function displayTitle(){
return "Site Title <?php echo date(\"m-d-y\", time()); ?>";
}
function displayContent(){
return file_get_contents("content.php");
}
Это работает довольно хорошо, но это не то, чего я хочу достичь.Я хотел бы создать что-то похожее на шаблон Joomla с тегами типа <jdoc:include type="component" />
.Я также хотел бы, чтобы он мог обрабатывать встроенные ошибки, что означает, что он будет отображать номер строки ошибки или когда я вызываю echo "text"
, он отображает текст в правильной позиции внутри шаблона.
Как мне создать что-то подобное?