日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

淺談PHP開(kāi)發(fā)框架_PHP教程

編輯Tag賺U幣
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!

推薦:淺談模版引擎的誕生
當(dāng)我還是一個(gè)菜鳥(niǎo)的時(shí)候,我學(xué)會(huì)使用PHP了,很開(kāi)心的,很有成就感,當(dāng)我做出了一些小程序的時(shí)候,我開(kāi)始為寫(xiě)PHP混雜HTML感到厭煩,當(dāng)我試著寫(xiě)出一個(gè)函數(shù)將PHP和HTML代碼分離時(shí),我又興奮了,成就了。那時(shí)還不知道那是模版引擎。當(dāng)我試著把這個(gè)函數(shù)寫(xiě)強(qiáng)時(shí),一

導(dǎo)讀:聰明的人懂得利用好一切的工具,以幫助自己提高效率,那么如何把一些枯燥而復(fù)雜的東西流水線化?PHP開(kāi)發(fā)框架顯然就是一種比較好的工具,你了解它們么?如果對(duì)它還不夠了解,那么就跟隨我們一起來(lái)看看關(guān)于PHP開(kāi)發(fā)框架的事情。

什么是PHP開(kāi)發(fā)框架?

有太多的原因使得PHP成為世界上最受歡迎的腳本語(yǔ)言--高度靈活、簡(jiǎn)單易用--不過(guò)寫(xiě)PHP(或者任何這種語(yǔ)言)代碼時(shí),人們常常陷入單調(diào)重復(fù)而令人生厭的體力活動(dòng)的窘境。而這正是PHP開(kāi)發(fā)框架大顯身手的地方。

 

通過(guò)提供一個(gè)開(kāi)發(fā)Web程序的基本架構(gòu),PHP開(kāi)發(fā)框架把PHPWeb程序開(kāi)發(fā)擺到了流水線上。換句話說(shuō),PHP開(kāi)發(fā)框架有助于促進(jìn)快速軟件開(kāi)發(fā)(RAD),這節(jié)約了你的時(shí)間,有助于創(chuàng)建更為穩(wěn)定的程序,并減少開(kāi)發(fā)者的重復(fù)編寫(xiě)代碼的勞動(dòng)。這些框架還通過(guò)確保正確的數(shù)據(jù)庫(kù)操作以及只在表現(xiàn)層編程的方式幫助初學(xué)者創(chuàng)建穩(wěn)定的程序。PHP開(kāi)發(fā)框架使得你可以花更多的時(shí)間去創(chuàng)造真正的Web程序,而不是編寫(xiě)重復(fù)性的代碼。

PHP開(kāi)發(fā)框架背后的思想被稱為"模型-視圖-控制器"(MVC)。MVC是這樣一種架構(gòu)模式,它隔離了業(yè)務(wù)邏輯與UI,允許其一改變而另一者不受影響。(也可以說(shuō)是關(guān)注點(diǎn)的隔離)在MVC中,模型負(fù)責(zé)數(shù)據(jù),視圖負(fù)責(zé)表現(xiàn),控制器則是程序主體或者說(shuō)是負(fù)責(zé)業(yè)務(wù)邏輯。從本質(zhì)上說(shuō),MVC拆分了一個(gè)程序的開(kāi)發(fā)過(guò)程,這樣你就可以修改獨(dú)立的每一部分,而其他部分不受影響,這是十分重要的,它使得編寫(xiě)PHP代碼更為快捷簡(jiǎn)單。

為什么要使用PHP開(kāi)發(fā)框架?

開(kāi)發(fā)者可能出于不同的考慮而使用PHP開(kāi)發(fā)框架,不過(guò)首當(dāng)其沖的原因是為了加速開(kāi)發(fā)過(guò)程。相似工程之間的代碼重用能夠節(jié)省開(kāi)發(fā)者大量的時(shí)間和精力。PHP開(kāi)發(fā)框架內(nèi)置了預(yù)建的模塊,免去了冗長(zhǎng)又令人厭煩的編程工作。這樣開(kāi)發(fā)者就能夠把時(shí)間活在開(kāi)發(fā)實(shí)際程序上,而不是每一次都要為每一個(gè)項(xiàng)目重建基礎(chǔ)模塊。

穩(wěn)定性是開(kāi)發(fā)者使用框架的另一個(gè)重要原因。盡管簡(jiǎn)單是PHP最大的資本,也是許多人喜愛(ài)這個(gè)腳本語(yǔ)言的原因,它也是PHP的"潘多拉之盒",尤其是那些初學(xué)者而言,PHP是如此的簡(jiǎn)單以至于他們會(huì)完全沒(méi)有意識(shí)地寫(xiě)出低質(zhì)量的代碼。這樣的PHP程序可能在大多數(shù)時(shí)間內(nèi)仍正常工作,但你可能已在代碼中留下了巨大的安全漏洞,使其易受攻擊。要時(shí)刻牢記PHP是一門(mén)很寬松的語(yǔ)言十分重要,因此確保不在代碼中遺留任何安全漏洞是重中之重--即使程序看起來(lái)工作正常。

最后一點(diǎn),PHP開(kāi)發(fā)框架是可擴(kuò)展的,并且有許多框架可供選擇。你也可以創(chuàng)造你自己的,不過(guò)許多開(kāi)發(fā)者決定從那些流行的知名的開(kāi)發(fā)框架中做選擇,因?yàn)樗鼈兺兄嫶蟮闹С謭F(tuán)隊(duì),以及相關(guān)的論壇/社區(qū)方便你與其他使用同一個(gè)框架的開(kāi)發(fā)者相互交流。注意,你應(yīng)當(dāng)事先檢驗(yàn)?zāi)愕捻?xiàng)目是否需要使用框架,這里提供一份簡(jiǎn)單的列表以供參考:使用框架能否節(jié)省你(和其他任何會(huì)使用它的人)的時(shí)間和精力?是否能夠讓程序得到更好的表現(xiàn)?能否提高穩(wěn)定性?如果你對(duì)上面任何一個(gè)問(wèn)題的回答是肯定的,那么使用PHP開(kāi)發(fā)框架對(duì)于這個(gè)項(xiàng)目就可能是正確的選擇。

何時(shí)使用PHP開(kāi)發(fā)框架?

這是開(kāi)發(fā)者,無(wú)論初學(xué)者還是經(jīng)驗(yàn)豐富的專家,常常詢問(wèn)的問(wèn)題,但又真的沒(méi)有直截了當(dāng)?shù)拇鸢�。�?duì)于許多初學(xué)者而言,框架提供了良好的穩(wěn)定性和簡(jiǎn)潔性,所以他們認(rèn)為只要能用就應(yīng)該用框架。它能夠減少低質(zhì)量代碼的產(chǎn)生,并加快項(xiàng)目進(jìn)度。

另一方面,許多經(jīng)驗(yàn)豐富的PHP程序員把框架視為那些不懂得如何寫(xiě)出高質(zhì)量的清晰的代碼的"初級(jí)"程序員而設(shè)計(jì)的工具。這句話對(duì)錯(cuò)與否有待商榷,但事實(shí)上PHP開(kāi)發(fā)框架的確是用來(lái)節(jié)省時(shí)間和提高編程效率的工具。

在忙于接近最后期限的工程時(shí),使用PHP開(kāi)發(fā)框架將帶來(lái)巨大的效益,因?yàn)樗軌驑O大地加快編程進(jìn)度。所以如果你時(shí)間緊迫,使用PHP開(kāi)發(fā)框架是極其正確的。應(yīng)當(dāng)把PHP開(kāi)發(fā)框架列入考慮范圍的另一個(gè)例子是當(dāng)你忙于一個(gè)有大量重復(fù)代碼的項(xiàng)目時(shí),因?yàn)樗兄跍p少重復(fù)工作量。

在PHP開(kāi)發(fā)框架中應(yīng)當(dāng)關(guān)注什么?

去搜索PHP開(kāi)發(fā)框架的人將會(huì)看到各式各樣的選擇,你甚至可以創(chuàng)建你自己的,盡管只推薦PHP專家們這么做。在尋找最適合你需求的PHP開(kāi)發(fā)框架時(shí),你要時(shí)刻想著誰(shuí)會(huì)使用和/或徹頭徹尾地修改它,這點(diǎn)很重要。如果會(huì)有許多人使用這個(gè)程序,最好用一個(gè)大多數(shù)開(kāi)發(fā)者都熟悉的框架。另一方面,如果你想要一個(gè)自己使用的Web程序,你最好選擇一個(gè)你覺(jué)得最舒服的PHP開(kāi)發(fā)框架--管它是流行還是不受歡迎呢。

在尋找PHP開(kāi)發(fā)框架時(shí)應(yīng)該考慮多種因素:簡(jiǎn)單易用,敏捷開(kāi)發(fā)/性能,在其它開(kāi)發(fā)者中間的流行程度,強(qiáng)大的特性,以及支持/論壇。我推薦你先嘗試幾款不同的PHP開(kāi)發(fā)框架,從中找出一個(gè)最適合你需求的,各種框架之間有些微的差異,有著不同的優(yōu)勢(shì)和劣勢(shì)。就拿Zend Framework來(lái)說(shuō),V3版本之后就帶有了豐富的功能,再加上一個(gè)可擴(kuò)展的支持系統(tǒng),這一切都是因?yàn)樗嬖诹俗銐蚓谩W鳛閷?duì)照,CakePHP是另一個(gè)比Zend Framework年輕的PHP開(kāi)發(fā)框架,它的支持系統(tǒng)的規(guī)模就略微小些(盡管對(duì)這個(gè)框架的支持正在飛速增長(zhǎng)),但CakePHP更加用戶友好且簡(jiǎn)單易用。

如你所見(jiàn),每種PHP開(kāi)發(fā)框架都有它自己的有點(diǎn),所以最好先做一些嘗試,捕捉一些錯(cuò)誤以便找出哪個(gè)框架能最好地服務(wù)于你的需求。另一種很好的選擇框架的方式是咨詢你那些身處開(kāi)發(fā)者社區(qū)的同事,問(wèn)問(wèn)他們喜歡哪個(gè)。那些真正用過(guò)某個(gè)框架的人會(huì)告訴你它是否易用,特性,可用的支持,框架周邊的社區(qū)所涉及的領(lǐng)域,他們還可能告訴你它的缺點(diǎn)。

使用PHP開(kāi)發(fā)框架時(shí)最常見(jiàn)的錯(cuò)誤

任何一種類(lèi)型的編程都會(huì)出現(xiàn)錯(cuò)誤,不過(guò)PHP開(kāi)發(fā)框架能夠極大地限制這些錯(cuò)誤的產(chǎn)生,因?yàn)樗鼜拈_(kāi)發(fā)過(guò)程的一開(kāi)始就提供了經(jīng)過(guò)驗(yàn)證的正確代碼。而且看來(lái)重復(fù)的代碼編寫(xiě)會(huì)增加錯(cuò)誤出現(xiàn)的概率,而框架徹底解決或至少減少了那個(gè)問(wèn)題。

這就是說(shuō),使用PHP開(kāi)發(fā)框架仍然又需要注意的問(wèn)題。例如,除非你是個(gè)PHP專家,否則你應(yīng)該選擇一個(gè)流行些的框架,它們有著豐富的支持和一定的活躍用戶基數(shù)(下面會(huì)列舉一些流行的PHP開(kāi)發(fā)框架)。有許多框架只有少得可憐的支持甚至沒(méi)有支持,并且/或者是由對(duì)PHP了解有限的人創(chuàng)建的。這些框架會(huì)導(dǎo)致你的程序不能正常工作,更壞的情況下會(huì)導(dǎo)致你的網(wǎng)站出現(xiàn)災(zāi)難性的安全問(wèn)題。

另一種常見(jiàn)的錯(cuò)誤是沒(méi)有確保數(shù)據(jù)庫(kù)和網(wǎng)站服務(wù)器兼容特定的框架。例如Seagull PHP Framewor推薦如下配置:

  • PHP: PHP 4.3.0 是最低配置,之后的版本也支持,PHP 5.1.1 及更高版本也可以。請(qǐng)避免任何 5.0.x 系列的東西。
     
  • MySQL: MySQL 4.0.x, 4.1.x 和 5.0.x 都支持,你也可以使用 3.23.x。
  • Apache: Seagull 在 1.3.x and 2.x 系列的 Apache 中工作得很好。
     

如果你不能滿足這些要求,你就不能得到所選擇框架可能的最佳性能。就算你是PHP專家,也應(yīng)該在嘗試框架之前閱讀其文檔以確保兼容性。

和上面這個(gè)錯(cuò)誤比較類(lèi)似的,不按照推薦安裝步驟去安裝你的PHP開(kāi)發(fā)框架也會(huì)給你帶來(lái)令人頭痛的煩惱。仍然用Seagull作為例子--Seagull的Wiki上有一份詳細(xì)的框架安裝流程,其中有幾個(gè)關(guān)鍵步驟有時(shí)候常常被粗心或者沒(méi)有戒心的開(kāi)發(fā)者輕易地忽略了。關(guān)鍵是你一次就把框架裝好會(huì)讓你在接下來(lái)的實(shí)際開(kāi)發(fā)中節(jié)約不必要的時(shí)間開(kāi)銷(xiāo)。

現(xiàn)在最好用的PHP開(kāi)發(fā)框架有哪些?

近幾年來(lái),隨著PHP作為一門(mén)被許多開(kāi)發(fā)者選作他們的腳本語(yǔ)言而不斷演化,PHP開(kāi)發(fā)框架如雨后春筍般走上熒屏。人們總是在爭(zhēng)吵到底哪個(gè)PHP開(kāi)發(fā)框架最好,但不是每個(gè)框架都是為所有人而產(chǎn)生的,這本來(lái)是很簡(jiǎn)單的事實(shí)。這里列舉五個(gè)最好的最受歡迎的PHP開(kāi)發(fā)框架:

The Zend Framework

The Zend Framework 在開(kāi)發(fā)社區(qū)中有大量的追隨者,它致力于Web 2.0風(fēng)格的程序。因?yàn)樗姸嗟淖冯S者組成的活躍用戶開(kāi)發(fā)的擴(kuò)展支持,Zend被稱為"The PHP Company"。Zend是一個(gè),也可能不是,今天可用的最受歡迎的PHP開(kāi)發(fā)框架。它有健壯的特征能夠支持協(xié)作開(kāi)發(fā),它需要一些PHP的額外知識(shí)。

CakePHP

CakePHP無(wú)論對(duì)于初學(xué)者還是職業(yè)PHP開(kāi)發(fā)者都是很好的選擇。它基于與Ruby on Rails同樣的原則而設(shè)計(jì),它十分注重快速開(kāi)發(fā)--這使得它成為一個(gè)非常好的用于RAD的開(kāi)發(fā)框架。它快速增長(zhǎng)的支持系統(tǒng),簡(jiǎn)潔性和可測(cè)量性使得CakePHP成為今天可用的最受歡迎的PHP開(kāi)發(fā)框架之一。

Symfony

Symfony 是為那些更加職業(yè)的主要開(kāi)發(fā)企業(yè)級(jí)程序的開(kāi)發(fā)者而準(zhǔn)備的--特別是 Askeet 和 Yahoo! Bookmarks。這款開(kāi)源PHP開(kāi)發(fā)框架有著豐富的特性,做起這些來(lái)綽綽有余,它主要的缺點(diǎn)是比其他的框架略微慢一些。

Codelgniter

Codelgniter 以它的簡(jiǎn)單易用,性能和速度而聞名。與 Symphony 不同,這款PHP開(kāi)發(fā)框架對(duì)于共享主機(jī)的用戶而言很理想,如果你想有一個(gè)小型覆蓋面的框架。它提供了簡(jiǎn)單的解決方案,還有擴(kuò)展的知識(shí)庫(kù),通過(guò)視頻教程,用戶指南和wiki來(lái)提供支持。

初學(xué)者應(yīng)當(dāng)考慮CodeIgniter。

Seagull

Seagull 是一個(gè)良好的PHP開(kāi)發(fā)框架,可以用來(lái)開(kāi)發(fā)Web,命令行和GUI程序。這是一款無(wú)論對(duì)初學(xué)者還是職業(yè)程序員而言都及其簡(jiǎn)單的開(kāi)發(fā)框架。對(duì)于初學(xué)者,Seagull提供一套包含樣例程序的庫(kù),經(jīng)過(guò)簡(jiǎn)單修改就能符合你的要求,而對(duì)于專家級(jí)程序員,Seagull提供了一整套設(shè)置選項(xiàng)--包括最佳練習(xí),標(biāo)準(zhǔn)的和模塊化的代碼庫(kù)--來(lái)快速簡(jiǎn)單地構(gòu)建Web程序。Seagull有一個(gè)活躍的用戶社區(qū)以及豐富的支持文檔。

總結(jié)

PHP開(kāi)發(fā)框架對(duì)于各種能力層級(jí)的開(kāi)發(fā)者都是一種減少重復(fù)編碼需要的良好方式,同時(shí)加快開(kāi)發(fā)過(guò)程,確保創(chuàng)建Web程序時(shí)寫(xiě)了正確的代碼。這不僅加速了復(fù)雜程序的開(kāi)發(fā),同時(shí)也減少了你代碼中的安全漏洞從而加強(qiáng)了PHP的安全性。

盡管一些專家級(jí)PHP程序員感覺(jué)沒(méi)必要使用開(kāi)發(fā)框架開(kāi)發(fā)Web程序,它們?cè)诳焖佘浖_(kāi)發(fā)中仍然有巨大優(yōu)勢(shì),比如在緊迫的期限下。而對(duì)于初學(xué)者或中等開(kāi)發(fā)者,開(kāi)發(fā)框架能夠提高PHP學(xué)習(xí)效率同時(shí)促進(jìn)練習(xí)編寫(xiě)高質(zhì)量的代碼且減少低質(zhì)量代碼,后者因?yàn)镻HP自身的"寬松"特性而常常出現(xiàn)。

今天有許多可以使用的PHP開(kāi)發(fā)框架,因此開(kāi)發(fā)者肯定能找到一款滿足他們?cè)谔匦裕С�,速度,可測(cè)度性等等方面的需求的框架。如今被開(kāi)發(fā)者使用的頂級(jí)PHP開(kāi)發(fā)框架包括:The Zend Framework,CakePHP,Symfony,Codelgniter和Seagull。

分享:談PHPCMS開(kāi)發(fā)文檔里看到PHP編碼規(guī)范
注:這是從PHPCMS開(kāi)發(fā)文檔里看到編碼規(guī)范,雖名為PHPCMS的開(kāi)發(fā)規(guī)范,但我覺(jué)得所有的PHP編程都該如此。寫(xiě)了那么多PHP,很多編碼對(duì)照這規(guī)范都感覺(jué)欠缺很多,今后一定要對(duì)照糾正。 Phpcms 編碼規(guī)范 1. 引言

來(lái)源:模板無(wú)憂//所屬分類(lèi):PHP教程/更新時(shí)間:2009-08-25
相關(guān)PHP教程