解答:如何使用PHP開發高效的WEB系統

來源:互聯網
上載者:User
  PHP是一個很優秀的工具,它可以簡單,也可以複雜。不一樣的項目,應該用不一樣的PHP。

  小項目 - 簡單而直接的PHP

  一般對於一個功能頁面在20以下的網站,我們可以用一個很簡單的架構結構來寫。在這個規模上,我建議是使用比較直接的面向過程編碼方法,原因很簡單,沒有必要把class檔案弄的N 多,結果controller裡邊就一個new就完了。當然,需求頻繁變化的項目除外。

  在這個層級上,php優點表現的很明顯:快速開發,一目瞭然。缺點同時也被隱藏得很好。

  中型項目 - 結構優美的OO化的PHP

  對於一個中型項目,我建議使用一個良好設計的架構來做,這個架構可以是基於MVC模型,封裝了眾多底層操作的,當然,一定要有一個好的最好是透明的cache機制,這樣,我們為了適應變化而加入的OO機制可以運行得更快更好。

  在這個層級上。php的缺點開始凸現,像對OO支援的不完整(這個PHP5有很大改進),只能單線程模式。另外一些外圍工具開始出現缺乏支援,像PHP沒有好的重構工具,沒有好的整合到IDE中的單元測試工具。優點當然還是原來的快速開發,廣泛的可用的開源資源。

  大型項目 - 擴充、最佳化後的PHP

  這裡的大型項目,簡單的指分布式項目,就是說,你的程式需要被部署在N台伺服器上了。在這個層級上,PHP比起j2ee的確缺乏很多支援。我曾和shadow在735上詳細討論過PHP要在大型系統上應用需要解決的一些問題,當然這些問題不光是PHP這個語言的問題,也包括了周邊開發的問題:

  1 PHP的頁面代碼共用,PHP的原始碼被載入記憶體一次以後,就在其中保留 - 這個用APC和Zend的最佳化器可以搞定。

  2 PHP頁面之間的資料對象共用,a.php和b.php之間可以共用一個資料對象,比如數組,這個現在可以用序列化來作,但是會有檔案io,這塊可以用共用記憶體或者memcached來處理。

  3 PHP的資料庫連接池,因為在多前端的情況下,PHP控制不住對資料庫的串連,所以需要在資料庫前邊去作一個串連池,類似於sqlrelay的東西。另外資料緩衝也是很重要的,大壓力開發有一個tip,就是能不動資料庫就不要動資料庫。

  4 PHP的前端cache系統。一個透明的可控制的cache機制,確保網站的頁面以最少次數查詢資料庫。這個有很多實現,但是沒有找到特別好的。

  5 一個PHP應用,成功的解決調這幾個問題以後,應付稍微大一點的壓力是沒有什麼問題的。

  在這個層級上,重要的是,把PHP java C++ python之類融合起來,使其成為一個高效系統。我們可以用memcached來做分布式記憶體管理,可以用Lucene 來作全文檢索索引,用ejb 容器來放一些商務邏輯組件,PHP則作為前端和系統的膠水,快速而靈活的把這些粘合起來。



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。