Shine 介绍
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相关知识。
- 目标并不是要发明一种编程语言。目标是恰到好处地提供如分支和循环这一类编程式功能,这是进行与表现相关判断的基础。
Shine 官网
http://bitbucket.org/gonefish/shine/overview
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。