PHP编程:教你若何用PHP制造静态网站的模板框架
学会了生成静态网页,现在你应该接触一下XML了,恩,XML也了解了,那么AJAX你也得接触接触吧?AJAX完了....然后...静态|模板 第一个目标是议论得最多的目标,它假想的情况是:一组法式员编写用于生成页面内容的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去准确地格局化终究页面而忧虑。
很轻易看出采取模板还有第二个优点。如上例所示,页面右边的导航条独自保留为一个文件,咱们只需编纂这一个模板文件就能够改动网站一切页面右边的导航条。
防止页面元素反复
“这的确不错”,你或许会想,“我的网站次要就是由大批的静态页面组成。如今我可以从一切页面中删除它们的公共局部,要更新这些公共局部其实太费事了。今后我就能够用模板制造出很轻易保护的一致页面结构。”但工作并不是这么复杂,“大批的静态页面”道出了成绩的地点。
请思索下面的例子。这个例籽实际上只要一个example.php页面,它之所以可以生成全部网站的一切页面,是由于它使用了URL中的查询字符串从数据库之类的信息源静态地机关出页面。
咱们当中的大多半人所运转的网站其实不必定都无数据库撑持。咱们的网站大多半由静态页面组成,然后用PHP在这里、那边加上一些静态功效,好比搜刮引擎、反应表单等。那末,若何在这类网站上使用模板呢?
最复杂的办法是为每个页面复制一份PHP文件,然后在每个页面中把PHP代码里代表内容的变量设置成适合的页面内容。例如,假定有三个页面,它们分离是主页(home)、关于(about)和产物(product),咱们可以用三个文件分离生成它们。这三个文件的内容都类如:
<p>但愿你可以喜好本网站</p>"; $tpl->assign('CONTENT', $content); $tpl->parse('HEADER', 'header'); $tpl->parse('LEFTNAV', 'leftnav'); $tpl->parse('MAIN', 'main'); $tpl->FastPrint('MAIN'); ?>
明显,这类办法有三个成绩:咱们必需为每个页面复制这些庞杂的、牵扯到模板的PHP代码,这与反复公共页面元素一样使得页面难以保护;如今文件又夹杂了HTML和PHP代码;为内容变量赋值将变得十分坚苦,由于咱们必需处置好大批的特别字符。
处理这个成绩的关头就在于分别PHP代码和HTML内容,固然咱们不克不及从文件中删除一切的HTML内容,但可以移出绝大多半PHP代码。
静态网站的模板框架:
ob_end_clean(); $tpl->assign('CONTENT', $content); $tpl->parse('HEADER', 'header'); $tpl->parse('LEFTNAV', 'leftnav'); $tpl->parse('MAIN', 'main'); $tpl->FastPrint('MAIN'); } ?> ageStart函数起首创立并设置了一个模板实例,然后启用输入缓存。尔后,一切来自页面自己的HTML内容都将进入缓存。pageFinish函数掏出缓存中的内容,然后在模板对象中指定这些内容,最初解析模板并输入完成后的页面。
这就是全部模板框架全体的任务进程了。起首编写包括了网站各个页面公共元素的模板,然后从一切页面中删除全体公共的页面结构代码,代之以三行永久无需修改的PHP代码;再把FastTemplate类文件和prepend.php到场到包括途径,如许你就失掉了一个页面结构可以集中掌握的网站,它有着更好的牢靠性和可保护性,并且网站级的大局限修正也变得相当轻易。会有很多高手的鼓励,新手的支持,慢慢你劲头就十足,有更多的信心和兴趣去学。 本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。 环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。 其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎 要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。 写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。 最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。 环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。 写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。 多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。 至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。 作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。 我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能: 本文当是我的笔记啦,遇到的问题随时填充 其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。 真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎, 首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。 要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。 要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。 在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
页:
[1]
2