当前位置: 首页 > 软件库 > 程序开发 > 模板引擎 >

Shine

PHP5 模板引擎
授权协议 未知
开发语言 PHP
所属分类 程序开发、 模板引擎
软件类型 开源软件
地区 国产
投 递 者 蒋健
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Shine是博客“骨头鱼的墓”http://gonefish.info的博主自己开发的一款PHP模板引擎,是Django模板语言从Python移植到PHP的产物。

Django是一个非常流行的Python Web开发框架,其提供的模板语言非常简单,但也非常强大。Shine是使用PHP5对Django模板语言的移植。在移植过程中,Shine定位于独立的模板引擎,所以在移植的过程中去除了一些与Django框 架相关的内容,如:模板文件加载器、Requext_Context等。但Shine并不是简单的移植,添加了新的模板加载方式,加入了编译缓存等 Django模板 语言不存在的东西。Shine还在不断的发展,最终将形成一个更适合PHP,但又继承了Django模板语言精髓的模板引擎。

Django模板语言在设计上非常有自己的特色,因此Shine也是符合这种设计思想的。这些设计思想包括以下几点,下面的内容参考自DjangoBook并做适当的修改:

  • 业务逻辑应该和表现逻辑相对分开 。我们将模板系统视为控制表现及表现相关逻辑的工具,仅此而已。模板系统不应提供超出此基本目标的功能。
  • 出于以上原因,在Shine模板中是不可能直接调用PHP代码的。所有的编程工作基本上都被局限于模板标签的能力范围。当然, 是有可能写出自定义的模板标签来完成任意工作,但这些“超范围”的 Shine模板标签有意地不允许执行任何PHP代码。
  • 语法不应受到HTML/XML的束缚。尽管Shine模板系统主要用于生成HTML,它还是被有意地设计为可生成非HTML格式,如纯文本。一些 其它的模板语言是基于XML的,将所有的模板逻辑置于XML标签与属性之中,而Django有意地避开了这种限制。强制要求使用有效XML编写模板将会引 发大量的人为错误和难以理解的错误信息,而且使用XML引擎解析模板也会导致令人无法容忍的模板处理开销。
  • 假定设计师精通HTML编码。模板系统的设计意图并不是为了让模板一定能够很好地显示在Dreamweaver这样的所见即所得编辑器中。这种限制过于苛刻,而且会使得语法不能像目前这样的完美。Shine要求模板创作人员对直接编辑HTML非常熟悉。
  • 假定设计师不是PHP程序员。模板系统开发人员认为:网页模板通常由设计师而不是程序员编写,因而假定这些人并不掌握PHP相关知识。
  • 目标并不是要发明一种编程语言。目标是恰到好处地提供如分支和循环这一类编程式功能,这是进行与表现相关判断的基础。
 相关资料
  • 具体查看ejs官方文档 https://github.com/mde/ejs

  • 我们自己实现了一个轻量级的模板引擎,不要问为什么不用smart之类的,因为我们认为没有必要为了一个小小的模板引擎而引入smaart这样复杂的实现。你可能会说,smart功能强大,支持各种标签,标签也是很强大,而且还可以对模板引擎进行各种"灵活"的配置... 这里我们觉得有必要说明一下: 框架的内置模板引擎基本上实现了我们日常开中所有常用的标签。 不常用的标签我们也做了巧妙的实现。 我们只提供了扩展

  • 内置模板引擎 视图的模板文件可以支持不同的解析规则,默认情况下无需手动初始化模板引擎。 可以通过下面的几种方式对模板引擎进行初始化。 配置文件 内置模板引擎的参数统一在配置目录的template.php文件中配置,例如: return [ // 模板引擎类型 支持 php think 支持扩展 'type' => 'Think', // 模板路径 '

  • Warning: The packages listed below may be outdated, no longer maintained or even broken. Listing here does not constitute an endorsement or recommendation from the Expressjs project team. Use at your

  • Use the app.engine(ext, callback) method to create your own template engine. ext refers to the file extension, and callback is the template engine function, which accepts the following items as parame

  • hi-nginx-java内置了两个mustache模板引擎:mustache.java和jmustache。 以下介绍仅就jmustache而言。 字符串模板 字符串模板是最简单的情况。例如: package test; import hi.request; import hi.response; import hi.route; import java.util.regex.Matcher

  • 快速开始 安装模块 # 安装koa模板使用中间件 npm install --save koa-views # 安装ejs模板引擎 npm install --save ejs 使用模板引擎 demo源码 https://github.com/ChenShenhai/koa2-note/blob/master/demo/ejs/ 文件目录 ├── package.json ├── index.js

  • 模版引擎 引入 我们在使用ajax请求数据时,返回的如果是一个 JSON 格式的字符串,我们需要将其包装到对应的HTML代码中,再添加到页面上,才能看到效果。那么这个包装得过程有没有简单的方法呢? 假设在 js 中有如下数据: var obj = { name:"fox", age:18, skill:"卖萌" }; 希望包装为: <