Codeigniter模板库,具有部分视图 - 哪一个?

时间:2013-07-10 13:10:39

标签: codeigniter templates partial-views libraries

我开始研究这个主题有几个原因......

1)减少控制器中的重复代码 2)配置我网站中使用的3个主要布局 - 1列,2列和3列页面 3)能够拥有单独的部分视图文件,并根据模板(主要内容,页眉,页脚和侧边栏)相应地加载它们

我已经搜索了这个主题,并提供了一些用户友好文档的例子,我希望得到一些指导。

Sam Stevens的

http://net.tutsplus.com/tutorials/php/an-introduction-to-views-templating-in-codeigniter/很棒......但缺乏为每个模板加载单个视图文件所需的动态。

Jens Segers的

https://github.com/jenssegers/CodeIgniter-Template-Library只是将我的生活与这个不必要的小部件混淆了。

Phil Sturgeon的

http://philsturgeon.co.uk/blog/2009/12/CodeIgniter-Template-library看起来不错......但缺乏文档和错误使得像我这样的新手很难起床和跑步。

William Concepts的

http://williamsconcepts.com/ci/codeigniter/libraries/template/index.html似乎是我能从其他用户那里得到的最好的 - 但它并不是开箱即用的,而且我在尝试定义标题之类的内容时遇到错误两次!这对我不起作用。

如果有人可以告诉我哪个图书馆(或其他图书馆)最能满足我想要实现的目标,那么我可以把所有注意力都放在实施和理解上,而不是在例子之间跳过......

此外,所有这些例子似乎都是(最初)YEARS年纪(酒吧Sam Steven's),这让我想知道,是否有更新或更新的例子?

3 个答案:

答案 0 :(得分:3)

有人就which templating library is best提出了一个非常类似的问题。我甚至会考虑将此标记为重复的问题,但是因为您问“是否有更新或更新的示例可用?” - 我会咬人。

您应该尝试使用Stencil。它是在今年发布的,有很好的文档,我在我所有的CodeIgniter项目中使用它(完全披露:我是创建者)。

其中一些功能是:

  1. 轻松设置标题
  2. 简单布局
  3. 特定于页面的资产(js和css,非常适合jQuery插件)
  4. 特定于页面的元数据
  5. 大量的HTML5助手
  6. 将数据绑定到视图的灵活方式
  7. 切片(也称为部分,包含,嵌套视图,元素等)
  8. 切片回调(也称为视图模型,您可以在其中执行 每次使用Slice代码块)
  9. 同样,这是我建立的东西。这一切都是为了找到合适的工具,你应该研究哪种方法最适合你的项目。

    <强>链接

    GitHub | Docs | Demo

答案 1 :(得分:0)

这更像是基于意见的问题,而不是某人可以事实回答的问题。这项工作没有最好但只是不同的工具。首先我要说的是,你可能只看到多年的CI库是因为许多人已经跳到了使用命名空间和更新的php 5.3功能的新框架。这并不是说CI很糟糕,我仍然将它用于我的一些项目。

菲尔·斯特金曾经是CI的核心贡献者,但如果我没记错的话,现在已经转移到了Laravel。 (Laravel也是我一直在迁移的东西)

Tutsplus是一个充满了令人敬畏的信息的好网站。事实上,最近他们为CI提供了一个新的高级课程:https://tutsplus.com/course/codeigniter-best-practices/

除了那些我不知道的其他两个并且不能给你任何信息。我,我不使用任何模板库,只是给每个局部视图一个对象中的名称/索引,如果名称存在,那么我调用局部视图并加载具有相同名称的对象中的属性(header,css) ,脚本,内容,页脚等)。然后,您只需要一个充当.net母版页的模板视图,然后将部分视图注入其中。您也可以通过创建一个钩子来完成此操作。也许谷歌搜索CI模板也是如此。

答案 2 :(得分:0)

不保留此页面的所有示例。 对于CodeIgniter中的模板,您可以使用CI Template Parser Class,但非常精简。

否则,您可以使用Smarty或Twig,它们具有非常强大的部分视图功能:模板继承。

模板继承是一种管理类似于面向对象编程技术的模板的方法。您可以将一个模板的内容继承到另一个模板(如扩展类)并更改其中的内容块(如重写类的方法),而不是传统使用{include ...}标记来管理模板的各个部分。这使模板管理保持最小化和高效,因为每个模板仅包含与其扩展的模板的差异。模板继承允许您构建一个基础“框架”模板,其中包含您网站的所有常见元素,并定义子模板可以覆盖的块。