PHP框架的基本原理以及選擇標準

weixin_33860553發表於2018-01-21

  • PHP框架的原理

    說到PHP框架,可能很多PHP新手會感到有些膽怯。其實,PHP框架也不是那麼深不可測的,框架就是別人使用PHP基礎只是為你寫好了的東西,只是封裝在一起;這就好比我們使用PHP的函式,函式都是已近寫好了的,我們只要按照函式使用的規則,比如,為函式傳遞引數的個數、型別以及函式返回的值型別等。理解了PHP函式的這些使用規則,我們就可以大膽、放心的去使用了。同樣道理,PHP框架也有自己的規則,比如專案資料夾的部署、控制器類的命名規則以及資料表的命名規則等。瞭解了PHP框架的使用規則我們就能去使用PHP框架提供的全部功能了。

    PHP框架並不是那麼高不可攀,每位PHP程式設計師都應該加入到PHP框架的學習和使用中來,畢竟一個人的精力是有限的,如何你每個專案都全部由自己開發的話,那麼你將浪費許多時間用在做相同的事情上。比方說,幾乎每個專案都有資料的驗證,那麼你要為每個專案都要編寫資料驗證的PHP程式碼,而如果你使用PHP框架的話,這些都是封裝了可以直接拿來使用的。

    PHP框架也是使用PHP的基本知識來寫的,沒有必要看到框架二字就退縮了。對PHP基礎知識非常熟悉的話,學習PHP框架是件輕鬆而快樂的事情。框架的使用會給你的專案節省50%左右的專案週期時間。

    PHP框架的優點

    1、PHP框架使程式碼更安全。一般PHP框架都採用單入口檔案的模式,我們只要在入口檔案進行驗證即達到了所有檔案驗證的目的。

    2、PHP框架縮短了專案開發週期,這可能是最大的優點了。

    3、使用PHP框架架構專案思路清晰、結構明顯。

    PHP框架選擇標準

    在如此多的PHP MVC框架中,怎樣去選擇一款各方面都不錯的框架學習並在專案中使用它?這是每一個PHPer都會面臨的問題。比如當前比較流行的框架有:ZendFrameWork、ThinkPHP(國產)、CodeIgniter、YII等。每個人心目中的好壞標準不一樣,再加上有的人習慣了某框架,想讓他再接受其優秀的框架也是比較難的。所以,我們應該怎樣去判斷一款框架是否屬於自己,變得非常的突出。現在我給出幾個標準:

    • 效能
      所謂的效能指的是IO、CPU佔用、PHP解析時間等幾個指標。當前的伺服器最突出的問題是CPU已經非常快了,記憶體已經夠大夠便宜了,唯獨硬碟IO不夠高。這就像一個一個智商150與一個智商80的人做1+1一樣,根本體現不出智商的優越性。
    • 全棧式
      雖然我個人不太贊成PHP框架過度全棧式。但是,如果能把全棧式做到優雅簡潔,我也是非常興奮的。什麼是全棧式?就是一款框架包含了WEB開發中所有的東西。比如:上傳、分頁、匯入匯出、郵件、日誌、錯誤、二維碼、RSS、RBAC等。這樣的話,才能真正解決掉我們去自己實現的麻煩,節省我們的時間。也提高了程式碼的安全性移植性。
    • 學習難度是否陡峭
      畢竟我們要運用到實際的專案中。以後陸續還會新增更多的人進入專案開發中。如果,學習難度過於陡峭,勢必會影響專案的進度和後期維護的成本。目前,我用過的框架中ThinkPHP做得還不錯,文件還比較完整易懂。換作正在用的YII框架,簡直是頭痛。提供的文件實在是過於簡單,示例不夠豐富。而且,程式碼不夠優雅。在某些設計上,過於物件導向,導致在PHP這種語言中操作起來不是特別順手。
    • 框架社會是否活躍
      一個社群活躍與否,直接關係到這個框架的未來的命運。誰也不希望今天還牛逼的框架,就因為沒有與時俱進,最終淹沒在歷史的長河中。自己又得花時間掌握新框架。比如:前幾天MongoDB還是比較火的時候,當時幾乎沒有框架在DB層,即ORM實現這個資料庫的介面。而專案中可能會考慮使用MongoDB。當時幾個比較知名的且速度比較過得去的框架都沒有支援。結果,還是我們們國產的ThinkPHP支援了。雖然,BUG可能有點多。至少,某種程度說明了一個活躍的社群是非常有必要的。
    • 框架使用的群體大小
      一款框架再牛逼,如果沒有人使用。你學了也只能在自己的一畝三分地有所建樹。出了這個圈,效果就不明顯了。PHPer學習這個東西,主要還是為了能找一份高薪順手的工作。如果,學了半天,結果卻沒有人用這個框架在專案中。那是相當悲催的。

相關文章