PHP框架的基本原理以及選擇標(biāo)準(zhǔn)
PHP框架的原理
說到PHP框架,可能很多PHP新手會(huì)感到有些膽怯。其實(shí),PHP框架也不是那么深不可測的,框架就是別人使用PHP基礎(chǔ)只是為你寫好了的東西,只是封裝在一起;這就好比我們使用PHP的函數(shù),函數(shù)都是已近寫好了的,我們只要按照函數(shù)使用的規(guī)則,比如,為函數(shù)傳遞參數(shù)的個(gè)數(shù)、類型以及函數(shù)返回的值類型等。理解了PHP函數(shù)的這些使用規(guī)則,我們就可以大膽、放心的去使用了。同樣道理,PHP框架也有自己的規(guī)則,比如項(xiàng)目文件夾的部署、控制器類的命名規(guī)則以及數(shù)據(jù)表的命名規(guī)則等。了解了PHP框架的使用規(guī)則我們就能去使用PHP框架提供的全部功能了。
PHP框架并不是那么高不可攀,每位PHP程序員都應(yīng)該加入到PHP框架的學(xué)習(xí)和使用中來,畢竟一個(gè)人的精力是有限的,如何你每個(gè)項(xiàng)目都全部由自己開發(fā)的話,那么你將浪費(fèi)許多時(shí)間用在做相同的事情上。比方說,幾乎每個(gè)項(xiàng)目都有數(shù)據(jù)的驗(yàn)證,那么你要為每個(gè)項(xiàng)目都要編寫數(shù)據(jù)驗(yàn)證的PHP代碼,而如果你使用PHP框架的話,這些都是封裝了可以直接拿來使用的。
PHP框架也是使用PHP的基本知識(shí)來寫的,沒有必要看到框架二字就退縮了。對PHP基礎(chǔ)知識(shí)非常熟悉的話,學(xué)習(xí)PHP框架是件輕松而快樂的事情??蚣艿氖褂脮?huì)給你的項(xiàng)目節(jié)省50%左右的項(xiàng)目周期時(shí)間。
PHP框架的優(yōu)點(diǎn)
1、PHP框架使代碼更安全。一般PHP框架都采用單入口文件的模式,我們只要在入口文件進(jìn)行驗(yàn)證即達(dá)到了所有文件驗(yàn)證的目的。
2、PHP框架縮短了項(xiàng)目開發(fā)周期,這可能是最大的優(yōu)點(diǎn)了。
3、使用PHP框架架構(gòu)項(xiàng)目思路清晰、結(jié)構(gòu)明顯。
PHP框架選擇標(biāo)準(zhǔn)
在如此多的PHP MVC框架中,怎樣去選擇一款各方面都不錯(cuò)的框架學(xué)習(xí)并在項(xiàng)目中使用它?這是每一個(gè)PHPer都會(huì)面臨的問題。比如當(dāng)前比較流行的框架有:ZendFrameWork、ThinkPHP(國產(chǎn))、CodeIgniter、YII等。每個(gè)人心目中的好壞標(biāo)準(zhǔn)不一樣,再加上有的人習(xí)慣了某框架,想讓他再接受其優(yōu)秀的框架也是比較難的。所以,我們應(yīng)該怎樣去判斷一款框架是否屬于自己,變得非常的突出?,F(xiàn)在我給出幾個(gè)標(biāo)準(zhǔn):
- 性能
所謂的性能指的是IO、CPU占用、PHP解析時(shí)間等幾個(gè)指標(biāo)。當(dāng)前的服務(wù)器最突出的問題是CPU已經(jīng)非常快了,內(nèi)存已經(jīng)夠大夠便宜了,唯獨(dú)硬盤IO不夠高。這就像一個(gè)一個(gè)智商150與一個(gè)智商80的人做1+1一樣,根本體現(xiàn)不出智商的優(yōu)越性。 - 全棧式
雖然我個(gè)人不太贊成PHP框架過度全棧式。但是,如果能把全棧式做到優(yōu)雅簡潔,我也是非常興奮的。什么是全棧式?就是一款框架包含了WEB開發(fā)中所有的東西。比如:上傳、分頁、導(dǎo)入導(dǎo)出、郵件、日志、錯(cuò)誤、二維碼、RSS、RBAC等。這樣的話,才能真正解決掉我們?nèi)プ约簩?shí)現(xiàn)的麻煩,節(jié)省我們的時(shí)間。也提高了代碼的安全性移植性。 - 學(xué)習(xí)難度是否陡峭
畢竟我們要運(yùn)用到實(shí)際的項(xiàng)目中。以后陸續(xù)還會(huì)添加更多的人進(jìn)入項(xiàng)目開發(fā)中。如果,學(xué)習(xí)難度過于陡峭,勢必會(huì)影響項(xiàng)目的進(jìn)度和后期維護(hù)的成本。目前,我用過的框架中ThinkPHP做得還不錯(cuò),文檔還比較完整易懂。換作正在用的YII框架,簡直是頭痛。提供的文檔實(shí)在是過于簡單,示例不夠豐富。而且,代碼不夠優(yōu)雅。在某些設(shè)計(jì)上,過于面向?qū)ο螅瑢?dǎo)致在PHP這種語言中操作起來不是特別順手。 - 框架社會(huì)是否活躍
一個(gè)社區(qū)活躍與否,直接關(guān)系到這個(gè)框架的未來的命運(yùn)。誰也不希望今天還牛逼的框架,就因?yàn)闆]有與時(shí)俱進(jìn),最終淹沒在歷史的長河中。自己又得花時(shí)間掌握新框架。比如:前幾天MongoDB還是比較火的時(shí)候,當(dāng)時(shí)幾乎沒有框架在DB層,即ORM實(shí)現(xiàn)這個(gè)數(shù)據(jù)庫的接口。而項(xiàng)目中可能會(huì)考慮使用MongoDB。當(dāng)時(shí)幾個(gè)比較知名的且速度比較過得去的框架都沒有支持。結(jié)果,還是咱們國產(chǎn)的ThinkPHP支持了。雖然,BUG可能有點(diǎn)多。至少,某種程度說明了一個(gè)活躍的社區(qū)是非常有必要的。 - 框架使用的群體大小
一款框架再牛逼,如果沒有人使用。你學(xué)了也只能在自己的一畝三分地有所建樹。出了這個(gè)圈,效果就不明顯了。PHPer學(xué)習(xí)這個(gè)東西,主要還是為了能找一份高薪順手的工作。如果,學(xué)了半天,結(jié)果卻沒有人用這個(gè)框架在項(xiàng)目中。那是相當(dāng)悲催的。
本文來自愛程序網(wǎng)!