解答:如何使用PHP開發(fā)高效的WEB系統(tǒng)_PHP教程
推薦:PHP動(dòng)態(tài)網(wǎng)頁(yè)編程常用技巧四則1.配置PHP文件目錄 作為服務(wù)器端解釋執(zhí)行的腳本語(yǔ)言,PHP程序放置在某個(gè)服務(wù)器可以訪問的目錄下,一般可以通過修改Apache的httpd.conj進(jìn)行配置,例如我們?cè)谠撐募械囊痪洌? Alias /test/
PHP是一個(gè)很優(yōu)秀的工具,它可以簡(jiǎn)單,也可以復(fù)雜。不一樣的項(xiàng)目,應(yīng)該用不一樣的PHP。
小項(xiàng)目 - 簡(jiǎn)單而直接的PHP
一般對(duì)于一個(gè)功能頁(yè)面在20以下的網(wǎng)站,我們可以用一個(gè)很簡(jiǎn)單的框架結(jié)構(gòu)來(lái)寫。在這個(gè)規(guī)模上,我建議是使用比較直接的面向過程編碼方法,原因很簡(jiǎn)單,沒有必要把class文件弄的N 多,結(jié)果controller里邊就一個(gè)new就完了。當(dāng)然,需求頻繁變化的項(xiàng)目除外。
在這個(gè)級(jí)別上,php優(yōu)點(diǎn)表現(xiàn)的很明顯:快速開發(fā),一目了然。缺點(diǎn)同時(shí)也被隱藏得很好。
中型項(xiàng)目 - 結(jié)構(gòu)優(yōu)美的OO化的PHP
對(duì)于一個(gè)中型項(xiàng)目,我建議使用一個(gè)良好設(shè)計(jì)的框架來(lái)做,這個(gè)框架可以是基于MVC模型,封裝了眾多底層操作的,當(dāng)然,一定要有一個(gè)好的最好是透明的cache機(jī)制,這樣,我們?yōu)榱诉m應(yīng)變化而加入的OO機(jī)制可以運(yùn)行得更快更好。
在這個(gè)級(jí)別上。php的缺點(diǎn)開始凸現(xiàn),像對(duì)OO支持的不完整(這個(gè)PHP5有很大改進(jìn)),只能單線程模式。另外一些外圍工具開始出現(xiàn)缺乏支持,像PHP沒有好的重構(gòu)工具,沒有好的集成到IDE中的單元測(cè)試工具。優(yōu)點(diǎn)當(dāng)然還是原來(lái)的快速開發(fā),廣泛的可用的開源資源。
大型項(xiàng)目 - 擴(kuò)展、優(yōu)化后的PHP
這里的大型項(xiàng)目,簡(jiǎn)單的指分布式項(xiàng)目,就是說(shuō),你的程序需要被部署在N臺(tái)服務(wù)器上了。在這個(gè)層級(jí)上,PHP比起j2ee的確缺乏很多支持。我曾和shadow在735上詳細(xì)討論過PHP要在大型系統(tǒng)上應(yīng)用需要解決的一些問題,當(dāng)然這些問題不光是PHP這個(gè)語(yǔ)言的問題,也包括了周邊開發(fā)的問題:
1 PHP的頁(yè)面代碼共享,PHP的源代碼被載入內(nèi)存一次以后,就在其中保留 - 這個(gè)用APC和Zend的優(yōu)化器可以搞定。
2 PHP頁(yè)面之間的數(shù)據(jù)對(duì)象共享,a.php和b.php之間可以共享一個(gè)數(shù)據(jù)對(duì)象,比如數(shù)組,這個(gè)現(xiàn)在可以用序列化來(lái)作,但是會(huì)有文件io,這塊可以用共享內(nèi)存或者memcached來(lái)處理。
3 PHP的數(shù)據(jù)庫(kù)連接池,因?yàn)樵诙嗲岸说那闆r下,PHP控制不住對(duì)數(shù)據(jù)庫(kù)的連接,所以需要在數(shù)據(jù)庫(kù)前邊去作一個(gè)連接池,類似于sqlrelay的東西。另外數(shù)據(jù)緩存也是很重要的,大壓力開發(fā)有一個(gè)tip,就是能不動(dòng)數(shù)據(jù)庫(kù)就不要?jiǎng)訑?shù)據(jù)庫(kù)。
4 PHP的前端cache系統(tǒng)。一個(gè)透明的可控制的cache機(jī)制,確保網(wǎng)站的頁(yè)面以最少次數(shù)查詢數(shù)據(jù)庫(kù)。這個(gè)有很多實(shí)現(xiàn),但是沒有找到特別好的。
5 一個(gè)PHP應(yīng)用,成功的解決調(diào)這幾個(gè)問題以后,應(yīng)付稍微大一點(diǎn)的壓力是沒有什么問題的。
在這個(gè)級(jí)別上,重要的是,把PHP java C python之類融合起來(lái),使其成為一個(gè)高效系統(tǒng)。我們可以用memcached來(lái)做分布式內(nèi)存管理,可以用Lucene 來(lái)作全文檢索,用ejb 容器來(lái)放一些業(yè)務(wù)邏輯組件,PHP則作為前端和系統(tǒng)的膠水,快速而靈活的把這些粘合起來(lái)。
分享:用Suhosin加強(qiáng)PHP腳本語(yǔ)言安全性PHP是一種非常流行的網(wǎng)站腳本語(yǔ)言,但是它本身所固有的安全性是非常薄弱。本文講述了PHP增強(qiáng)計(jì)劃(Hardened-PHP project)和新的Suhosi計(jì)劃,Suhosin提供了增強(qiáng)的PHP的安全配置。 PHP是帶有爭(zhēng)
- PHPNOW安裝Memcached擴(kuò)展方法詳解
- php記錄頁(yè)面代碼執(zhí)行時(shí)間
- PHP中獎(jiǎng)概率的抽獎(jiǎng)算法程序代碼
- apache設(shè)置靜態(tài)文件緩存方法介紹
- php對(duì)圖像的各種處理函數(shù)代碼小結(jié)
- PHP 關(guān)于訪問控制的和運(yùn)算符優(yōu)先級(jí)介紹
- 關(guān)于PHP語(yǔ)言構(gòu)造器介紹
- php/js獲取客戶端mac地址的實(shí)現(xiàn)代碼
- php5.5新數(shù)組函數(shù)array_column使用
- PHP preg_match的匹配多國(guó)語(yǔ)言的技巧
- php 中序列化和json使用介紹
- php采集文章中的圖片獲取替換到本地
PHP教程Rss訂閱編程教程搜索
PHP教程推薦
- 怎樣成為PHP高手
- 解析PHP動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)中SESSION的應(yīng)用
- 《PHP設(shè)計(jì)模式介紹》第十五章 表數(shù)據(jù)網(wǎng)關(guān)模式
- 關(guān)于二級(jí)目錄拖拽排序的實(shí)現(xiàn)(源碼示例下載)
- PHP計(jì)算頁(yè)面執(zhí)行時(shí)間
- PHP上傳文件的代碼
- 深入解析php之a(chǎn)pc
- PHP偽靜態(tài)_PHP動(dòng)態(tài)URL靜態(tài)化
- PHP刪除HTMl標(biāo)簽的實(shí)現(xiàn)代碼
- 用php實(shí)現(xiàn)簡(jiǎn)單的滑動(dòng)菜單
- 相關(guān)鏈接:
- 教程說(shuō)明:
PHP教程-解答:如何使用PHP開發(fā)高效的WEB系統(tǒng)
。