【问题标题】:Codeigniter template libraries, with partial views - which one?Codeigniter 模板库,带有部分视图——哪一个?
【发布时间】:2013-07-10 13:10:38
【问题描述】:

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

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 看起来不错...但是缺少文档和错误使得像我这样的新手很难启动和运行。

http://williamsconcepts.com/ci/codeigniter/libraries/template/index.htmlhttp://williamsconcepts.com/ci/codeigniter/libraries/template/index.html 来自 William Concepts 似乎是我可以从其他用户那里衡量的最好的 - 但它不是开箱即用的,而且我在尝试两次定义标题之类时遇到错误!它只是不适合我。

如果有人可以建议我哪个库(或其他库)最能实现我想要实现的目标,那么我可以将全部注意力放在实现和理解它上,而不是在示例之间跳转......

此外,所有这些示例似乎(最初)都已有多年历史(Sam Steven 的除外),这让我想知道,是否没有更新或最近的示例可用?

【问题讨论】:

    标签: codeigniter templates partial-views libraries


    【解决方案1】:

    关于which templating library is best 的问题非常相似。我什至会考虑将此标记为重复问题,但既然您问“没有更新或更新的示例可用吗?”——我会咬一口的。

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

    它的一些特点是:

    1. 轻松设置标题
    2. 简单的布局
    3. 页面特定资产(js 和 css,非常适合 jQuery 插件)
    4. 特定于页面的元数据
    5. 大量 HTML5 助手
    6. 将数据绑定到视图的灵活方式
    7. 切片(也称为部分、包含、嵌套视图、元素等)
    8. 切片回调(也称为视图模型,您可以在其中执行 每次使用 Slice 时的代码块)

    同样,这是我构建的。这一切都是为了找到适合工作的工具,您应该研究最适合您的项目的工具。

    链接

    GitHub | Docs | Demo

    【讨论】:

      【解决方案2】:

      这更像是一个基于意见的问题,而不是一个可以实际回答的问题。没有最好的工具,只有适合这项工作的不同工具。首先我要说的是,你可能只看到多年的 CI 库的原因是因为许多已经跳到使用命名空间和更新 php 5.3 特性的更新框架。这并不是说 CI 不好,我仍然在一些项目中使用它。

      Phil Sturgeon 曾经是 CI 的核心贡献者,但如果我没记错的话,现在已经转向 Laravel。 (Laravel 也是我一直在迁移的)

      Tutsplus 是一个很棒的网站,里面有很多很棒的信息。事实上,就在最近他们为 CI 开设了一门新的高级课程:https://tutsplus.com/course/codeigniter-best-practices/

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

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-08-23
          • 1970-01-01
          • 2018-04-01
          • 2012-03-05
          • 1970-01-01
          • 1970-01-01
          • 2012-01-03
          • 1970-01-01
          相关资源
          最近更新 更多