|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
学会了PHP,那么学其他的语言,肯定速成,反过来也一样,如果你之前学过其他的语言,那么学PHP肯定快。 很早就想写这篇文章了,但一向没有工夫完成它。不是说我来告知人人若何做,我更但愿本文只是做为一个引子,与人人来会商关于若何创立一个无效地、天真的收集使用法式。
经由了2-3年的收集使用法式开辟任务,我的开辟经历变得加倍活泼了,回过火来看我之前为Geocrawler写的代码,几乎不敢信任这是我的。因为GPL的缘由,在PHPBuilder中的源码也是良莠不齐的。
比来我做为一个有经历的PHP开辟者,一向在帮着写SourceForge,我想这显示出了终究了局的一个局限。好的代码应被分红了多个局部,适合的库及函数挪用,清晰的数据库布局,站点的每个局部与其它局部都是绝对自力的。
然而,这仍不是最好的。假如我可以重做,我将更多的存眷于HTML层与数据层的分别,经由过程对象及清晰的函数库完成这一点。
幽美的图形
我晓得司理们喜好用幽美的图形及图表来描写它们,这将给咱们留下最好的印象。用这类埋没在一个布局后的设法,你可以把你的逻辑与外不雅分别,这意味着任何一个庞杂的法式都可以用"API/Data Access Layer"来表述。
与其你把平安检测、更新的句子等放在HTML层中,不如把它们全体地放在你的API层里。而这个HTML层只含有复杂的函数挪用和前往的数组、对象或自定的其它甚么,和一些数据库的检索了局的纠合等。
假如你如许做了,顶层将长短常的肥大,你可以便利地创立及保护它。
以下的例子中,这个HTML接口中只要一些API层中的函数的直接挪用,一些HTML东西库(它能生成一个弹出框等等),和一些从数据库笼统层中挪用的数据库操作办法(你不需求绑定某一个出格的数据库)。
基本
天真的PHP法式布局最根基的方面有以下几点:
数据库有关性
界面有关性
可移植性
面向对象或最少应由函数库构成
还有其它的?
固然还有一些其它的器材,但我以为那都是太大了,也许你本人能指出它们。
让咱们具体地谈谈它们每条吧。
1、数据库有关性
你从不晓得你的站点将会在哪里运转,固然在你创立它时,你但愿它变和得很大而且有很高的流量。所以你不想把你本人束缚在 MS Access 下面或其它甚么笨重的数据库体系。固然你不克不及立即地拔出各类分歧的数据库体系,然而你有能够很便利地在它们两头切换。你有一些分歧的选择可以把你的数据库挪用笼统出来。在PHP中一个奇异的办法是你不能不为每一个分歧的数据库体系写出分歧的代码,由于在PHP中对每种分歧的数据库的会见函数是分歧的。为了避开这点,你可使用一个笼统地数据库会见层,就象PHPLib、下一个版本的PEAR、及咱们在SourceForge中描写的那样。
2、界面有关性
一个使用法式是它的手艺更主要仍是它所运转的站点更主要?咱们其实不能真正地晓得。我历来不信任这一点--HTML是一个尺度。出格是关于一个收集使用法式而言,界面产生了修改,意味着咱们不能不老是重写。然而假如你的使用法式是很大很庞杂的,你就要为你的数据库创立一些其它的接口了,只需你不想在你的站点法式中各处copy&paste你的会见反省等代码。这也意味着,假如你准确地设计了你的使用法式,你可以很轻易地改写你的站点让它顺应WAP,只需复杂地写一个小的WAP界面,并让它挪用你的数据库会见对象罢了。但如果你没有很好地设计你的法式,你把你的HTML版改成WAP版是一个庞杂的工程。
我把这个设法也带入了SourceForge中,咱们有一个伟大的用户群,为咱们发送/吸收bugs、义务等。起首,咱们指出一切的这些将经由过程咱们的web页面接口,然后,因为Eric Raymond 和其别人给的压力,咱们决意用XML来做数据库的内部接口。
侥幸的是咱们曾在四月已把法式的中心逻辑代码与它的界面分别了。我将试着表达咱们是若何做的,但愿对你的任务有所匡助。
这个SourceForge的bugs跟踪器和其它的一些东西被分红两个库 - 这个HTML库和数据会见库。这个数据会见库反省输出的值的准确性,处置平安校验,而且当做功/掉败时前往TRUE 或 FALSE。
因为简化的缘由,这个例子并没有基于一个完美的对象形式,那样我还要注释这个基类和它的一些衍生类等等,我想这个例子将给你一个最通俗的设法。
<P><STRONG>HTML 库的例子 |
|