我当前使用的是自己的模板系统,需要将变量分配给它们的占位符,稍后将替换它们。不幸的是,尚无法在模板内部直接使用if / else之类的条件。我总是必须在PHP中处理此问题,并需要将最终值分配给模板。
php当前的状态:
$template->assign('{content}', ($b ? 'value' : 'value2'))
和html:<div>{content}</div>
我想要什么:
<div><?php echo ($b ? 'value' : 'value2'); ?></div>
或<div><?php echo ($b ? 'value' : $this->renderAnotherTemplate()); ?></div>
我可以使用.php文件或类似的文件,但据我所记得,模板文件名在URL中可见。因此,我需要一种方法来从模板文件中读取字符串,执行它的php并访问解析器中使用的当前变量(eval很危险)。
你们中有人有一个好主意,怎么做?
谢谢!
答案 0 :(得分:0)
为什么不只包含一个PHP文件?
include(‘template.php’)
您将能够访问模板文件中所有在调用include()范围内可用的变量。您可以将其包装在模板对象的方法中,该方法也可以接受要在模板文件中使用的变量。
另一种解决方案是引入模板语言,例如,blade,twig或smarty。但老实说,我只会在一个小项目中使用更简单的包含项