所以我使用Codeigniter的Template Parser Class作为我的模板引擎。这是非常基本的,但它应该做我需要的。我唯一认真的是它显示未使用的伪变量。这对我来说是一个交易破坏者!
的控制器 的
public function index()
{
$this->parser->parse('templates/home', array('foo'=>'bar'));
}
查看 的
{foo}
{hello}
的输出 的
bar {hello}
有人知道如何阻止未使用的伪变量显示吗?
CodeIgniter 2.1.2
另一方面,我愿意接受替代方案。我无法为CodeIgniter 2找到一个强大的模板引擎,它不是过时的或没有合适的文档。
答案 0 :(得分:1)
实际上,在我自己的研究中,我也无法为CodeIgniter找到任何强大的模板引擎。在使用时,它们起着非常重要的作用,因此当它们失败时,它们会很难失败。第三方解决方案容易受到漏洞的影响,并且总是面临开发人员放弃的风险。本机实现没有我需要的必要功能。这些风险+缺乏功能对我的要求是不可接受的。也许你也是。
我向你提供这个建议:
它本身就是一个模板引擎。打开short_open_tags
中的php.ini
并使用PHP的short echoing syntax。在编写视图时,您将携带一些额外的字符,但如果您需要,可以在指尖轻松使用实际的PHP变量/数组。
模板代码:
{blog_entries}
<h5>{title}</h5>
<p>{body}</p>
{/blog_entries}
PHP等价物:
<? foreach($blog_entries as $b):?>
<h5><?= $b['title'];?></h5>
<p><?= $b['body']?></p>
<? endforeach; ?>
关于此问题一直存在争议,但在我看来,模板引擎只会使设置复杂化。
答案 1 :(得分:0)
我不知道模板分析器类,但作为替代,你可以说
<?php echo (isset($foo)) ? $foo : '' ; ?>
答案 2 :(得分:0)
我最终使用了Phil Sturgeon的CodeIgniter-Template模板库,具有讽刺意味的是,它并不比CodeIgniter中内置的模板库好得多。但它确实解决了我当前的问题。