看了一些开源系统的,简单的总结一下php的模板及静态原理。
先贴代码,再做解释。 index.php
template.php
代码解释见注释。 把上面的两个代码放在同一个目录下,然后访问看看,目录下面是不是多了一个HTML文件。这就是产生的静态页面,你可以把这个文件打开看看并和template.php比较一下。 总体原理很简单,看完注释就能明白个大概,不过这只是个基本的演示。如果是真正要使用到系统中,还需要完善以下问题。 1、缓存的静态文件的过期及更新问题,上面的例子里,只要有缓存存在,就直接去读。就算变量$var的值改变了,也不会更新内容。所以实际使用时,在变量或模板改变时,更新缓存的静态文件,或者通过一些方式设置缓存有效期,过期时重新生成。 2、功能分解,上面的例子,两个页面就演示了整个流程,为了便于在项目中使用,我们需要对上面页面中涉及到的功能进行拆分,分别放在不同的函数里实现。比如,调用模板不可能只是一句require就搞定。读缓存也应该进行细化,file_get_contents一句话是不行的。 3、模板拆分,应该充分发挥模板重用,不能说,一个php页面对应一个模板,而应该是按功能分。比如,模板A是用来显示新闻列表的,那这个模板,可以在任何显示新闻列表的地方调用。而不应该定义为:模板A是news.php对应的的模板,这样的话,比如:news.php里需要显示一个新闻列表,index.php里用模板B,如果index.php里也需要显示新闻列表,这两块模板就重复了。 大概想到这些。欢迎拍砖 |
|