0

所以我使用 Codeigniter 的模板解析器类作为我的模板引擎。这是非常基本的,但它应该做我需要的。我唯一不满意的是它显示了未使用的伪变量。这对我来说是一个交易破坏者!

控制器

public function index()
{
   $this->parser->parse('templates/home', array('foo'=>'bar'));
}

看法

{foo}
{hello}

输出

酒吧{你好}

有人知道我如何防止显示未使用的伪变量吗?


代码点火器 2.1.2


在旁注中,我对替代方案持开放态度。我一直无法为 CodeIgniter 2 找到一个健壮的模板引擎,它没有过时或没有像样的文档。

4

3 回答 3

1

事实上,在我自己的研究中,我也无法为 CodeIgniter 找到任何强大的模板引擎。在使用时,它们扮演着极其重要的角色,因此当它们失败时,它们会严重失败。第三方解决方案容易受到错误的影响,并且始终面临被开发人员放弃的风险。本机实现没有我需要的必要功能。这些风险+缺乏功能对于我的要求是不可接受的。也许你的也是。

我给你这个建议:

只需使用 PHP。

实际上,它本身就是一个模板引擎。打开short_open_tagsphp.ini使用 PHP 的简短回显语法。在编写视图时,您将携带几个额外的字符,但如果您需要,可以将实际的 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; ?>

关于这个问题一直存在争议,但在我看来,模板引擎只会使设置复杂化。

于 2012-09-16T17:49:06.820 回答
0

我不知道模板解析器类,但作为替代你可以说

<?php echo (isset($foo)) ? $foo : '' ; ?>
于 2012-09-16T16:49:48.357 回答
0

我最终使用了 Phil Sturgeon 的 CodeIgniter-Template 模板库,具有讽刺意味的是,它并没有比 CodeIgniter 中内置的模板库好得多。然而,它确实解决了我眼前的问题。

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

于 2012-11-17T04:31:05.137 回答