PHP模板变量-smarty样式(或其他更好的样式)和无限深度
我正在开发一个模板系统,首先需要高效,其次需要易于阅读 我以前做过一些几乎相同的事情,但它涉及到preg_match_all-效率低得令人绝望 假设我们有如下HTML:PHP模板变量-smarty样式(或其他更好的样式)和无限深度,php,templating,variable-variables,Php,Templating,Variable Variables,我正在开发一个模板系统,首先需要高效,其次需要易于阅读 我以前做过一些几乎相同的事情,但它涉及到preg_match_all-效率低得令人绝望 假设我们有如下HTML: <body> <h1><!--[%variable]--></h1> <b><!--[%array['key']]--></b> <div> <!--[template:templ
<body>
<h1><!--[%variable]--></h1>
<b><!--[%array['key']]--></b>
<div>
<!--[template:templateName]-->
</div>
</body>
其中parseTemplate()=
问题是,您必须向下传递每个多个级别的$vars
,如果多个页面使用相同的模板,则要向下传递多个级别的vars
因此,如果有人对如何做到这一点有任何想法,请让我知道,我很感激。我仅仅通过打字就形成了一些想法,但我期待着听到其他人的想法
谢谢你你只是想在你的应用程序中集成一些类似smarty的功能吗?或者您实际上正在编写自己的模板引擎?我要求的原因是Smarty可以集成,您可以将其用作模板引擎,而无需使用其典型的.TPL文件模板系统。你可以看到的另一个想法是一个全PHP模板引擎。我正在写我自己的“模板引擎”。我设法弄明白我想要什么,我只是看错了方向。谢谢你的建议
<?php
$template[$templateName] = '<body>
<h1>'.$variable.'</h1>
<b>'.$array['key'].'</b>
<div>
'.parseTemplate('templateName', $varsToPass).'
</div>
</body>
?>
function parseTemplate($tpl, $vars){
global $rootDir;
foreach($vars as $var){
global $$var;
}
require_once($rootDir.'/templates/'.$tpl.'.tpl.php');
return $template[$tpl];
}