PHP框架深度解析

  PHP成爲世界上最流行的腳本語言有許多緣由:靈活性,易用性等等。但一般只用PHP或者其餘語言編碼就會顯得單調、重複,這時候就須要一個PHP框架來代替程序員完成那些重複不變的部分。本文經過回答What,When,Why以及Which這些問題,將對PHP框架進行全面解析。程序員

  PHP框架是什麼?web

  PHP框架提供了一個用以構建web應用的基本框架,從而簡化了用PHP編寫web應用程序的流程。換言之,PHP框架有助於促進快速應用開發(RAD),不但節省開發時間、有助於創建更穩定的應用,並且減小了重複編碼的開發。經過確保適當的數據庫交換和在表現層編碼,框架還能夠幫助初學者創建更穩定的應用服務。這可讓你花更多的時間去建立實際的Web應用程序,而不是花時間寫重複的代碼。數據庫

  一般認爲PHP框架的做用至關於模型-視圖-控制器(Model View Controller)。MVC是種編程的架構模式,將業務邏輯從UI中分離出來,容許一個一個單獨修改(也稱爲關注點分離)。在MVC中,Model指數據,View指表現層,Controller則指應用程序或業務邏輯。基本上,MVC打破了一個應用的開發進程,這樣各組件就能夠不受影響地各自工做。從本質上講,這使得用PHP編碼更快更簡單。編程

  爲何要使用PHP框架?安全

  開發人員使用PHP框架的好處不少,其中之一是加快開發進程。在相似項目中重用代碼將爲開發者節省大量的時間和精力。框架爲執行繁瑣的代碼任務提供預建模塊,所以,開發人員能夠把時間花在實際應用的開發上,而不是每個項目都從新構建基礎功能。服務器

  穩定是開發者使用框架的另外一個重要緣由。雖然簡單是PHP最大的優勢,不少人也由於這一點喜歡使用這個腳本語言,但它同時也是PHP最大的缺點。一些開發者尤爲是初學者很容易寫出低劣的代碼,而本身卻沒有意識到。使用PHP,應用每每會將靜態工做加倍,不知不覺中您可能已經在編碼時打開了一個大的安全漏洞,所以可能會受到攻擊。重要的是要記住,PHP是一個很是寬容的語言,所以,更重要的是在編程時確保封閉任何漏洞,即使應用看起來能夠正常工做。架構

  最後,PHP框架的使用是很是普遍的,並且有許多不一樣的框架可供選擇。許多開發者會選擇知名的框架,是由於它的知名度、其開發團隊的巨大支持,並且他們能夠經過論壇/社區來與其餘使用相同框架的開發者交流,固然你也能夠開發本身的框架。這裏提醒一下,首先應該檢查你的項目來決定是否應該使用一個框架。你應該問本身:它會節省你和其餘使用者的時間和精力麼?應用程序的性能會更好麼?是否會提升穩定性?若是這些問題你的回答都是是,那麼你就該爲你的項目選擇一個合適的框架了。框架

  什麼時候使用PHP框架?模塊化

  這是一個不管有經驗的開發者仍是初級開發者都共有的問題,並且這個問題也確實沒有直接的回答。對於許多初學者來講,一個框架將提供不少簡便和穩定,所以應該儘量地使用PHP框架。這將有助於減小或消除不良編碼,加快開發進程。工具

  另外一方面,許多有經驗的PHP程序員將框架視爲不知道如何寫出好的、乾淨的代碼的低級程序員的工具。姑且不論這一點的真假,起碼毋庸置疑的是PHP框架是一個能夠用來節省時間並強化本身編碼的工具。

  當工做的項目時間緊迫時,使用PHP框架就有不少好處,能夠大大加快編碼進程,所以因此若是你時間緊迫,使用PHP框架就是很好的選擇。另外一個例子是,當你所作的項目有大量代碼時,也應當考慮使用PHP框架,由於這將有助於減小工做的繁瑣度。

  尋找一個什麼樣的PHP框架?

  有許多可供開發者選擇的PHP框架,甚至還能夠建立本身的框架,儘管只建議PHP專家級這樣作。當尋找你最須要的PHP框架時,重要的是要搞清楚誰將自始至終使用或修改你的應用,若是是有不少人作這件事情,那麼最好使用流行的PHP框架,這樣大部分開發者都不會陌生。另外一方面,若是你想構建Web應用程序爲你我的使用,那就最好選擇令你滿意的PHP框架,而不在意它在開發者社區中是否流行。

  選擇PHP框架的參考因素有不少,包括:容易使用、快速開發、性能、開發者中的流行程度、強大的功能,技術支持、論壇等。當你第一次選擇PHP框架時,爲了找到一個適合你需求的最佳選擇,建議多嘗試幾個。每一個框架都有所不一樣,並有不一樣的長處和短處。例如Zend框架因爲V3和多樣的功能、而且有一個普遍的支持系統,於是它流行了這麼久。相反,CakePHP是另外一個晚於Zend框架的PHP框架,相應的支持系統也比較少,但更方便和易於使用。

  正如你所看到的,每種類型的PHP框架都有本身的優勢,所以,最好反覆試驗以找出其中哪一個最適合你的須要。另外一個選擇PHP框架的有效方式是諮詢你的同事,看看開發社區裏選擇哪一個。那些真正使用過具體框架的可以明確地告訴你它的易用性、功能、支持可用性、社區內的狀況,固然可能還有不足。

  使用PHP框架最多見的錯誤

  任何類型的編程中均可能有錯誤,可是PHP框架有助於顯著限制這些錯誤。重複編碼彷佛加重了這種錯誤,而框架則解決了這一問題。儘管如此,在使用任何PHP框架時仍要注意。例如,除非你是一位PHP編程的專家,不然你應該老是選擇使用流行的框架,有大量的支持和積極的用戶羣。不少框架的支持不多甚至沒有,它們多是被PHP知識有限的個別開發者所建立的。這些類型的框架,可能會使你的應用程序沒法正常運行,更糟糕的是,可能會給你的網站帶來災難性的安全問題。

  另外一些常見的錯誤是,不能確保你的數據庫和Web服務器符合特定框架。例如,Seagull PHP Framework建議以下配置:

  *PHP:最低是PHP 4.3.0,PHP 5.1.1或者更高版本更佳,避免任何5.0.x版本中的東西;

  *MySQL的:支持MySQL的4.0.x,4.1.x和5.0.x,也可使用3.23.x;

  *Apache:Seagull支持1.3.x以及Apache的2.x系列。

  若是你沒有知足這些要求,您將沒法在你所選的框架中看到最好的性能。即便你是PHP的專家,你也應該常常複習框架的說明文檔,確認兼容性後再嘗試。

  相似於前面提到的常見的錯誤,不遵循建議的安裝進程的話,你的PHP框架也能夠給你帶來一些使人頭疼的問題。以Seagull爲例,在Seagull的wiki有一個詳細的框架安裝過程,其中有幾個關鍵步驟,很容易被不當心或不知情的開發者忽視。所以你要花費時間來安裝框架並遵循安裝說明。

  最好的PHP框架有哪些?

  過去的幾年中,由於PHP已發展成爲大多數開發者選擇的腳本語言,於是也產生了大量的PHP框架。什麼是最好的PHP框架,仁者見仁智者見智,由於並不是每個框架都可以適合每個人。如下是5個最佳和最流行的PHP框架選擇:

  Zend Framework在開發者社區中頗有人氣,其重點是Web 2.0風格的應用程序。因爲其大量的黨羽、普遍的支持和積極的用戶羣,Zend被稱爲PHP Company。Zend即便不是當今最流行的PHP框架,也絕對是之一。它強大的功能可以知足企業級的需求,固然它的使用也須要具有普遍的PHP知識。

  從初學者到高級PHP開發者,CakePHP都是一個很棒的選擇。它與Ruby on Rails設計的原則基本相同,主要集中在快速開發方面使其成爲一個快速應用開發的優良框架。其迅速增加的支持系統、簡單和可擴展性使CakePHP成爲當今最熱門的PHP框架。

  Symfony針對的更多的是高級開發者,也即建立企業級應用的開發者,尤爲是Askeet和Yahoo!Bookmarks。這個開源的PHP框架功能全面,但它的主要缺點是速度慢於其餘框架。

  CodeIgniter以其易用性、性能和速度而聞名。不一樣於Symfony,CodeIgniter主要針對的是與人共享主機的開發者,或者爲小型設備尋找PHP框架的開發者。它提供簡單的解決辦法,並且有一個擴展庫包括視頻教程、論壇、用戶指南和wiki。初學者應該考慮使用CodeIgniter。

  Seagull是一個穩定的用於構建web、命令行和GUI應用的PHP框架。這是一個很是易於使用的框架,很是適合初學者到高級程序員。對於初學者,Seagull有一個範例應用庫,能夠本身設定後知足自身需求;對於高級開發者,Seagull提供了衆多選擇包括最佳實踐、標準、模塊化的代碼基,這些均可以幫助快速簡單地構建Web應用程序。Seagull有一個活躍的開發者社區,內有大量的支持性文檔和說明。

  歸納

  PHP框架爲各類技術等級的開發者減小了重複編碼的需求、加快了開發進程,並在建立web應用時確保正確的編碼。這不只加快了富應用開發的進程,同時也經過減小代碼的安全漏洞而加強了PHP的安全性。

  雖然一些專家級PHP程序員以爲沒有必要使用框架開發Web應用程序,但PHP框架仍然能夠是快速開發的優秀解決方案,好比在工期很緊的狀況下。從初級到中級開發者,框架能夠提升PHP的學習,同時促進良好的代碼編寫和減小壞代碼。

  今天有不少的PHP框架可用,所以開發者確定能從中找到一個適合本身的框架:功能、支持、速度、可擴展性等。開發者普遍使用的一些頂尖的PHP開發框架包括:Zend Framework,CakePHP,Symfony,Codeigniter以及Seagull。

相關文章
相關標籤/搜索