使用CodeIgniter的模板分析器类时,是否可以删除/隐藏未使用的伪变量?

时间:2012-09-16 16:21:03

标签: codeigniter template-engine

所以我使用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找到一个强大的模板引擎,它不是过时的或没有合适的文档。

3 个答案:

答案 0 :(得分:1)

实际上,在我自己的研究中,我也无法为CodeIgniter找到任何强大的模板引擎。在使用时,它们起着非常重要的作用,因此当它们失败时,它们会很难失败。第三方解决方案容易受到漏洞的影响,并且总是面临开发人员放弃的风险。本机实现没有我需要的必要功能。这些风险+缺乏功能对我的要求是不可接受的。也许你也是。

我向你提供这个建议:

只需使用PHP。

它本身就是一个模板引擎。打开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中内置的模板库好得多。但它确实解决了我当前的问题。

http://getsparks.org/packages/template/show