PHP模板引擎原理
开发一个web项目,通常分为两部分,一部分是GUI,即界面、美工,使用HTML,CSS,JS编写,另一部分则是业务逻辑,即程序、功能,使用PHP编写。而模板引擎则是联系这两部分的“桥梁”,可理解成一个PHP类,里面定义了许多方法,实现了将PHP的原始输出加载上界面样式后再输出。
没用模板之前的编写的代码是这样的:
这样的话美工与逻辑没有分离,简单的说就是PHP程序员不仅要写程序还要精通美工,这往往十分困难,因此需要将这两部分工作分开。
在此通过自己创建一个简单的模板引擎为例子,更好的体会模板引擎的原理。
之前说了开发一个web项目分成GUI与业务逻辑两部分,因此我们创建两个文件夹,一个命名为“templates”,里边存放模板,新建一个tpl.html文件,另一个命名为“PHP”,里边存放业务逻辑,新建一个index.php文件。
tpl.html文件代码通常是这样:
可以看出来,和之前的代码相比,tpl.html中只有html代码,没有php代码,但是增加了新的标签,这类标签是自己定义的,里面的内容只有经过模板引擎编译后才能被识别,编译后的文件存放在“templates_c”文件夹下。这个文件主要是界面设计用的,将大量使用到CSS,JS等技术。
这时候tpl.html和index.php仍旧是分离的,互不干扰,因此需要一个“桥梁”连接,即模板引擎,其实就是一个PHP类,故在此可以创建一个mytpl.class.php的PHP文件。
mytpl.class.php文件通常定义一个类MyTpl,类中需定义一个数组tpl_var[]用于存放tpl.html中自定义内容标签的参数,此外还需定义一些方法,这些方法最主要的目的是将tpl.hml中无法识别的的内容标签转换成PHP语句,然后再写到一个“templates_c”文件夹下的tpl_c.html中,这个过程就是所谓的编译。
通常tpl_c.html文件的代码是这样的:
页:
[1]