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相关知识。
  • 目标并不是要发明一种编程语言。目标是恰到好处地提供如分支和循环这一类编程式功能,这是进行与表现相关判断的基础。