如何在Code Igniter帮助器和视图中分离表示和逻辑?

时间:2017-02-20 13:45:31

标签: php html codeigniter

在CodeIgniter应用程序中,我经常动态生成HTML,如Bootstrap面板,如下所示:

<div class='panel panel-default'>
    <div class='panel-heading'>{$content->heading}</div>
    <div class='panel-body'> 
        {$content->something}
        {$content->something_else}
        {$content->something_entirely_different}
    </div>
</div>

关于如何生成panel-body中的内容,涉及一些逻辑。我通常将这样的逻辑移动到辅助函数,辅助函数将来自数据库的数据数组(即关于文档的数据)作为输入,并返回这样可以加载到最终视图中的格式化HTML面板数组。

我想知道将静态html移出模板文件(即'/application/views/templates/panel_template.html')是否更好并生成如下面板:

$panel = $this->load->view('templates/panel_template', array('content'=>$content), TRUE); //third parameter forces the view to be interpreted as a string rather than print it to the browser

...稍后加载。

如果有的话,对我而言,根据MVC原则(逻辑和视图不是在同一文件中编织在一起),这肯定看起来更清晰 简而言之:

  1. 服务器上$this->load->view();是否很重?这归结为:是否值得为加载外部文件(感知)增加优雅/清洁而不是PHP字符串中的“硬编码”HTML?
  2. 我应该在帮助程序中构建HTML还是使用帮助程序将数据注入视图,并加载其结果?如果不是,那怎么样?

0 个答案:

没有答案