php代碼架構(gòu)的八點(diǎn)注意事項(xiàng)
本文總結(jié)講述了php代碼架構(gòu)的八點(diǎn)注意事項(xiàng)。分享給大家供大家參考,具體如下:
寫代碼寫了6年多了,看看以前的架構(gòu),看看現(xiàn)在的架構(gòu)。都有一些不足的地方。不管怎么樣,都一直在改進(jìn)。說(shuō)實(shí)話不太喜歡用框架這類東西,基本上所有的框架都大同小異,差不了多少,要用話的,你還要去了解思想,目錄結(jié)構(gòu),文件調(diào)用,文件命名,代碼規(guī)范等,挺浪費(fèi)時(shí)間的。構(gòu)架能滿足很大一部分的要求,滿足的人越多性能越差,這也是我不喜歡用架構(gòu)的一個(gè)主要原因。下面說(shuō)一下,代碼架構(gòu)方面的一些心德。
一、面向?qū)ο鬄橹?,面向過(guò)程為輔
php4是面向過(guò)程的,php5及以后支持面向?qū)ο蟆?/p>
1,面向?qū)ο蟮某绦蛟O(shè)計(jì)思想,對(duì)于代碼的管理,規(guī)劃更合理,性能更好等。
2,面向過(guò)程代碼管理,規(guī)劃比較簡(jiǎn)單,調(diào)用方式更直接,更清楚,效率方面比較差。
舉個(gè)例子說(shuō)明一下:
面向?qū)ο蠛帽仁且粋€(gè)軟件園區(qū),如果你想找某個(gè)公司的所在地,你要知道是幾號(hào)樓,幾層,幾室。
面向過(guò)程好比是平民區(qū),如果你要找某戶人家,你要知道,什么路,多少號(hào)就行了。
如果要把軟件園區(qū)高樓都變成民房,就要占用更多的土地。如果園區(qū)過(guò)大,找起來(lái)也不便宜,如果單獨(dú)咨詢室就方便多了。所以個(gè)人覺(jué)得,一個(gè)好的架構(gòu),一定是以面向?qū)ο鬄橹?,面向過(guò)程為輔。
二、目錄結(jié)構(gòu)的規(guī)劃
代碼架構(gòu)的時(shí)候,這一點(diǎn)很重要,這就好比軟件園區(qū)的大樓,不能隨便蓋,得有規(guī)律。入口文件放在什么地方,功能模塊放在什么地方,模板文件放在什么地方??傊痪湓?,安排好,配置文件,JS文件,php文件,模塊文件,CSS文件,圖片文件等。
三、單入口還是多入口
目前我了解的php框架,還是CMS基本上都是單入口的。單入口還是多入口,各有各的好。有一點(diǎn)提一下單入口肯定比多入口要好,就url的重寫。
四、面向?qū)ο蟮膶蛹?jí)設(shè)計(jì)
一般情況下,基本上三級(jí)就夠了,底層類,基本底層的模塊類,組合模塊的應(yīng)用類。如果是一個(gè)比較大型的網(wǎng)站,分的層級(jí)會(huì)更多。
五、數(shù)據(jù)庫(kù)類要規(guī)劃好
這一點(diǎn)很重要,理想方式是所有sql執(zhí)行走一個(gè)類。為什么要這樣,這是為長(zhǎng)遠(yuǎn)打算,將來(lái)做了mysql集群,或者是用了memcache之類的nosql,轉(zhuǎn)換起來(lái)也方便,如果sql到處都有,那就郁悶了。
六、多個(gè)二級(jí)域名下的類共用
什么意思呢,例如一個(gè)網(wǎng)站有,BBS,門戶,微博,正常思維(discuz除外,所以二級(jí)域名指向同一目錄)是對(duì)應(yīng)三個(gè)目錄,也就是有三個(gè)documentroot,共用類最好是脫離web的目錄而存在。這樣類可以共用,可以減少代碼冗余。
七、使用模板插件
php代碼和html代碼混著寫,我覺(jué)得不好,特別是網(wǎng)站改版,會(huì)讓你崩潰的?,F(xiàn)在php代碼和html分離的模板很多,例如:smarty
八、js代碼規(guī)劃
smarty可以使php和html分離,jquery等類似的js插件可以使js和html分離。js也是一門開(kāi)發(fā)語(yǔ)言,基于JS的插件也可以理解成一門語(yǔ)言,都有面向?qū)ο蠛兔嫦蜻^(guò)程之分。如果不規(guī)劃好,html頁(yè)面會(huì)很亂,查看源碼會(huì)發(fā)現(xiàn),一半html,一半JS。
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP基本語(yǔ)法入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》及《php優(yōu)秀開(kāi)發(fā)框架總結(jié)》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- PHP程序員簡(jiǎn)單的開(kāi)展服務(wù)治理架構(gòu)操作詳解(三)
- PHP程序員簡(jiǎn)單的開(kāi)展服務(wù)治理架構(gòu)操作詳解(二)
- PHP程序員簡(jiǎn)單的開(kāi)展服務(wù)治理架構(gòu)操作詳解(一)
- PHP數(shù)據(jù)源架構(gòu)模式之表入口模式實(shí)例分析
- PHP架構(gòu)及原理知識(shí)點(diǎn)詳解
- thinkPHP5.0框架整體架構(gòu)總覽【應(yīng)用,模塊,MVC,驅(qū)動(dòng),行為,命名空間等】
- 四種php中webservice實(shí)現(xiàn)的簡(jiǎn)單架構(gòu)方法及實(shí)例
- php之深入理解架構(gòu)布局講解
相關(guān)文章
PHP讀取配置文件類實(shí)例(可讀取ini,yaml,xml等)
這篇文章主要介紹了PHP讀取配置文件類,可讀取ini,yaml,xml等配置文件,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07PHP學(xué)習(xí)散記_編碼(json_encode 中文不顯示)
今天使用json_encode轉(zhuǎn)換數(shù)組的時(shí)候,出現(xiàn)了中文不顯示的情況。2011-11-11淺析PHP中Collection 類的設(shè)計(jì)
本篇文章是對(duì)PHP中Collection 類進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06對(duì)象失去焦點(diǎn)時(shí)自己動(dòng)提交數(shù)據(jù)的實(shí)現(xiàn)代碼
生產(chǎn)線上,提升輸入員輸入效率,在沒(méi)有購(gòu)買到Bar code槍之前,需要修改程序,即是說(shuō)當(dāng)mouse光標(biāo)離開(kāi)TextBox之后,數(shù)據(jù)自動(dòng)提交到數(shù)據(jù)庫(kù)中2012-11-11php 不使用js實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)
頁(yè)面跳轉(zhuǎn)大多情況下是使用js,其實(shí)也可以不用,下面為大家介紹下具體的實(shí)現(xiàn),需要的朋友可以參考下2014-02-02