如何用PHP制作静态网站的模板框架
第一个目标是谈论得最多的目标,它假想的情况是:一组程序员编写用于天生页面内容的PHP脚本,同时另一组设计职员设计HTML和图形以把持页面的终极外观。分别功效和布局的基础思想就是使得这两组人能够各自编写和应用独立的一组文件:程序员只需关心那些只包含PHP代码的文件,无需关心页面的外观;而页面设计职员可以用自己最熟悉的可视化编纂器设计页面布局,无需担心损坏任何嵌进到页面的PHP代码。
假如你曾经看过几个关于PHP模板的教程,那么你应当已经明白模板的工作机制。考虑一个简略的页面局部:页面的上方是页头,左边是导航条,其余部分是内容区域。
可以看出页面如何由模板结构而成:main模板把持着全部页面的布局;header模板和leftnav模板把持着页面的公共元素。花括号“{}”里面的标识符是内容占位符。应用模板最重要的利益在于界面设计者能够按照自己的意愿编纂这些文件,比如设置字体、修正色彩和图形,或者完整地转变页面的布局。界面设计者可以用任何普通HTML编纂器或者可视化工具编纂这些页面,由于这些文件都只包含HTML代码,没有任何PHP代码。
PHP代码全部保留到单独的文件中,这个文件也就是由页面URL实际调用的文件。Web服务器通过PHP引擎解析该文件,然后把成果返回给浏览器。一般地,PHP代码总是动态地天生页面内容,比如查询数据库或者履行某种盘算等。下面是一个例子:
// 此处的PHP代码设置$content 使其包含合适的页面内容 $tpl->assign('CONTENT', $content); $tpl->parse('HEADER', 'header'); $tpl->parse('LEFTNAV', 'leftnav'); $tpl->parse('MAIN', 'main'); $tpl->FastPrint('MAIN'); ?>
这里我们应用的是风行的FastTemplate模板类,但其基础思路对于其他很多模板类来说都一样。首先你实例化一个类,告诉它到哪里往寻找模板文件以及哪一个模板文件与页面的哪部分对应;接下来是天生页面内容,把成果赋予内容的标识符;然后,依次解析各个模板文件,模板类将履行必要的调换把持;最后把解析成果输出到浏览器。
这个文件完整由PHP代码构成,不包含任何HTML代码,这是它最大的长处。现在,PHP程序员可以集中精力编写天生页面内容的代码,而不必为了如何天生HTML往准确地格局化终极页面而担心。
很轻易看出采用模板还有第二个利益。如上例所示,页面左边的导航条单独保留为一个文件,我们只需编纂这一个模板文件就可以转变网站所有页面左边的导航条。
避免页面元素重复
“这确实不错”,你也许会想,“我的网站重要就是由大批的静态页面构成。现在我可以从所有页面中删除它们的公共部分,要更新这些公共部分实在太麻烦了。以后我就可以用模板制作出很轻易保护的同一页面布局。”但事情并非这么简略,“大批的静态页面”道出了标题的所在。 如何用PHP制作静态网站的模板框架