我开始研究这个主题有几个原因......
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),这让我想知道,是否有更新或更新的例子?
答案 0 :(得分:3)
有人就which templating library is best提出了一个非常类似的问题。我甚至会考虑将此标记为重复的问题,但是因为您问“是否有更新或更新的示例可用?” - 我会咬人。
您应该尝试使用Stencil。它是在今年发布的,有很好的文档,我在我所有的CodeIgniter项目中使用它(完全披露:我是创建者)。
其中一些功能是:
答案 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 ...}标记来管理模板的各个部分。这使模板管理保持最小化和高效,因为每个模板仅包含与其扩展的模板的差异。模板继承允许您构建一个基础“框架”模板,其中包含您网站的所有常见元素,并定义子模板可以覆盖的块。