自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

基礎(chǔ)知識(shí)回顧:為什么要使用PHP框架?

開發(fā) 后端
本文對(duì)PHP框架進(jìn)行了一番全面解析,說明PHP框架的作用,好處,用法,以及如何選擇合適的PHP框架。

PHP成為世界上最流行的腳本語言有許多原因:靈活性,易用性等等。但通常只用PHP或者其他語言編碼就會(huì)顯得單調(diào)、重復(fù),這時(shí)候就需要一個(gè)PHP框架來代替程序員完成那些重復(fù)不變的部分。本文通過回答What, When, Why 以及 Which這些問題,將對(duì)PHP框架進(jìn)行全面解析。

PHP框架是什么?

PHP框架提供了一個(gè)用以構(gòu)建web應(yīng)用的基本框架,從而簡化了用PHP編寫web應(yīng)用程序的流程。換言之,PHP框架有助于促進(jìn)快速應(yīng)用開發(fā)( RAD ),不但節(jié)省開發(fā)時(shí)間、有助于建立更穩(wěn)定的應(yīng)用,而且減少了重復(fù)編碼的開發(fā)。通過確保適當(dāng)?shù)臄?shù)據(jù)庫交換和在表現(xiàn)層編碼,框架還可以幫助初學(xué)者建立更穩(wěn)定的應(yīng)用服務(wù)。這可以讓你花更多的時(shí)間去創(chuàng)建實(shí)際的Web應(yīng)用程序,而不是花時(shí)間寫重復(fù)的代碼。

通常認(rèn)為PHP框架的作用相當(dāng)于模型-視圖-控制器(Model View Controller)。MVC是種編程的架構(gòu)模式,將業(yè)務(wù)邏輯從UI中分離出來,允許一個(gè)一個(gè)單獨(dú)修改(也稱為關(guān)注點(diǎn)分離)。在MVC中,Model指數(shù)據(jù),View指表現(xiàn)層,Controller則指應(yīng)用程序或業(yè)務(wù)邏輯?;旧?, MVC打破了一個(gè)應(yīng)用的開發(fā)進(jìn)程,這樣各組件就可以不受影響地各自工作。從本質(zhì)上講,這使得用PHP編碼更快更簡單。

為什么要使用PHP框架?

開發(fā)人員使用PHP框架的好處很多,其中之一是加快開發(fā)進(jìn)程。在類似項(xiàng)目中重用代碼將為開發(fā)者節(jié)省大量的時(shí)間和精力。框架為執(zhí)行繁瑣的代碼任務(wù)提供預(yù)建模塊,因此,開發(fā)人員可以把時(shí)間花在實(shí)際應(yīng)用的開發(fā)上,而不是每一個(gè)項(xiàng)目都重新構(gòu)建基礎(chǔ)功能。

穩(wěn)定是開發(fā)者使用框架的另一個(gè)重要原因。雖然簡單是PHP最大的優(yōu)點(diǎn),很多人也因?yàn)檫@一點(diǎn)喜歡使用這個(gè)腳本語言,但它同時(shí)也是PHP最大的缺點(diǎn)。一些開發(fā)者尤其是初學(xué)者很容易寫出低劣的代碼,而自己卻沒有意識(shí)到。使用PHP,應(yīng)用往往會(huì)將靜態(tài)工作加倍,不知不覺中您可能已經(jīng)在編碼時(shí)打開了一個(gè)大的安全漏洞,因此可能會(huì)受到攻擊。重要的是要記住,PHP是一個(gè)非常寬容的語言,因此,更重要的是在編程時(shí)確保封閉任何漏洞,即便應(yīng)用看起來可以正常工作。

最后,PHP框架的使用是非常廣泛的,而且有許多不同的框架可供選擇。許多開發(fā)者會(huì)選擇知名的框架,是因?yàn)樗闹?、其開發(fā)團(tuán)隊(duì)的巨大支持,而且他們可以通過論壇/社區(qū)來與其他使用相同框架的開發(fā)者交流,當(dāng)然你也可以開發(fā)自己的框架。這里提醒一下,首先應(yīng)該檢查你的項(xiàng)目來決定是否應(yīng)該使用一個(gè)框架。你應(yīng)該問自己:它會(huì)節(jié)省你和其他使用者的時(shí)間和精力么?應(yīng)用程序的性能會(huì)更好么?是否會(huì)提高穩(wěn)定性?如果這些問題你的回答都是是,那么你就該為你的項(xiàng)目選擇一個(gè)合適的框架了。

何時(shí)使用PHP框架?

這是一個(gè)無論有經(jīng)驗(yàn)的開發(fā)者還是初級(jí)開發(fā)者都共有的問題,而且這個(gè)問題也確實(shí)沒有直接的回答。對(duì)于許多初學(xué)者來說,一個(gè)框架將提供很多簡便和穩(wěn)定,因此應(yīng)該盡可能地使用PHP框架。這將有助于減少或消除不良編碼,加快開發(fā)進(jìn)程。

另一方面,許多有經(jīng)驗(yàn)的PHP程序員將框架視為不知道如何寫出好的、干凈的代碼的低級(jí)程序員的工具。姑且不論這一點(diǎn)的真假,起碼毋庸置疑的是PHP框架是一個(gè)可以用來節(jié)省時(shí)間并強(qiáng)化自己編碼的工具。

當(dāng)工作的項(xiàng)目時(shí)間緊迫時(shí),使用PHP框架就有很多好處,可以大大加快編碼進(jìn)程,因此所以如果你時(shí)間緊迫,使用PHP框架就是很好的選擇。另一個(gè)例子是,當(dāng)你所做的項(xiàng)目有大量代碼時(shí),也應(yīng)當(dāng)考慮使用PHP框架,因?yàn)檫@將有助于減少工作的繁瑣度。

尋找一個(gè)什么樣的PHP框架?

有許多可供開發(fā)者選擇的PHP框架,甚至還可以創(chuàng)建自己的框架,盡管只建議PHP專家級(jí)這樣做。當(dāng)尋找你最需要的PHP框架時(shí),重要的是要搞清楚誰將自始至終使用或修改你的應(yīng)用,如果是有很多人做這件事情,那么最好使用流行的PHP框架,這樣大部分開發(fā)者都不會(huì)陌生。另一方面,如果你想構(gòu)建Web應(yīng)用程序?yàn)槟銈€(gè)人使用,那就最好選擇令你滿意的PHP框架,而不在乎它在開發(fā)者社區(qū)中是否流行。

選擇PHP框架的參考因素有很多,包括:容易使用、快速開發(fā)、性能、開發(fā)者中的流行程度、強(qiáng)大的功能,技術(shù)支持、論壇等。當(dāng)你第一次選擇PHP框架時(shí),為了找到一個(gè)適合你需求的最佳選擇,建議多嘗試幾個(gè)。每個(gè)框架都有所不同,并有不同的長處和短處。例如Zend框架由于V3和多樣的功能、并且有一個(gè)廣泛的支持系統(tǒng),因而它流行了這么久。相反, CakePHP是另一個(gè)晚于Zend框架的PHP框架,相應(yīng)的支持系統(tǒng)也比較少,但更方便和易于使用。

正如你所看到的,每種類型的PHP框架都有自己的優(yōu)點(diǎn),因此,最好反復(fù)試驗(yàn)以找出其中哪個(gè)最適合你的需要。另一個(gè)選擇PHP框架的有效方式是咨詢你的同事,看看開發(fā)社區(qū)里選擇哪個(gè)。那些真正使用過具體框架的能夠明確地告訴你它的易用性、功能、支持可用性、社區(qū)內(nèi)的情況,當(dāng)然可能還有不足。

使用PHP框架最常見的錯(cuò)誤

任何類型的編程中都可能有錯(cuò)誤,但是PHP框架有助于顯著限制這些錯(cuò)誤。重復(fù)編碼似乎加劇了這種錯(cuò)誤,而框架則解決了這一問題。盡管如此,在使用任何PHP框架時(shí)仍要注意。例如,除非你是一位PHP編程的專家,否則你應(yīng)該總是選擇使用流行的框架,有大量的支持和積極的用戶群。很多框架的支持很少甚至沒有,它們可能是被PHP知識(shí)有限的個(gè)別開發(fā)者所創(chuàng)建的。這些類型的框架,可能會(huì)使你的應(yīng)用程序無法正常運(yùn)行,更糟糕的是,可能會(huì)給你的網(wǎng)站帶來災(zāi)難性的安全問題。

另一些常見的錯(cuò)誤是,不能確保你的數(shù)據(jù)庫和Web服務(wù)器符合特定框架。例如,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的專家,你也應(yīng)該經(jīng)常復(fù)習(xí)框架的說明文檔,確認(rèn)兼容性后再嘗試。

類似于前面提到的常見的錯(cuò)誤,不遵循建議的安裝進(jìn)程的話,你的PHP框架也可以給你帶來一些令人頭疼的問題。以Seagull 為例,在Seagull的wiki有一個(gè)詳細(xì)的框架安裝過程,其中有幾個(gè)關(guān)鍵步驟,很容易被不小心或不知情的開發(fā)者忽視。因此你要花費(fèi)時(shí)間來安裝框架并遵循安裝說明。

最好的PHP框架有哪些?

過去的幾年中,因?yàn)镻HP已發(fā)展成為大多數(shù)開發(fā)者選擇的腳本語言,因而也產(chǎn)生了大量的PHP框架。什么是最好的PHP框架,仁者見仁智者見智,因?yàn)椴⒎敲恳粋€(gè)框架都能夠適合每一個(gè)人。以下是5個(gè)最佳和最流行的PHP框架選擇:

◆The Zend Framework

Zend Framework在開發(fā)者社區(qū)中很有人氣,其重點(diǎn)是Web 2.0風(fēng)格的應(yīng)用程序。由于其大量的黨羽、廣泛的支持和積極的用戶群,Zend被稱為PHP Company。Zend即使不是當(dāng)今最流行的PHP框架,也絕對(duì)是之一。它強(qiáng)大的功能能夠滿足企業(yè)級(jí)的需求,當(dāng)然它的使用也需要具備廣泛的PHP知識(shí)。

◆CakePHP

從初學(xué)者到高級(jí)PHP開發(fā)者,CakePHP都是一個(gè)很棒的選擇。它與 Ruby on Rails設(shè)計(jì)的原則基本相同,主要集中在快速開發(fā)方面使其成為一個(gè)快速應(yīng)用開發(fā)的優(yōu)良框架。其迅速增長的支持系統(tǒng)、簡單和可擴(kuò)展性使CakePHP成為當(dāng)今最熱門的PHP框架。

◆Symfony

Symfony針對(duì)的更多的是高級(jí)開發(fā)者,也即創(chuàng)建企業(yè)級(jí)應(yīng)用的開發(fā)者,尤其是Askeet和Yahoo! Bookmarks。這個(gè)開源的PHP框架功能全面,但它的主要缺點(diǎn)是速度慢于其他框架。

◆CodeIgniter

CodeIgniter以其易用性、性能和速度而聞名。不同于Symfony,CodeIgniter主要針對(duì)的是與人共享主機(jī)的開發(fā)者,或者為小型設(shè)備尋找PHP框架的開發(fā)者。它提供簡單的解決辦法,而且有一個(gè)擴(kuò)展庫包括視頻教程、論壇、用戶指南和wiki。初學(xué)者應(yīng)該考慮使用CodeIgniter 。

◆Seagull

Seagull是一個(gè)穩(wěn)定的用于構(gòu)建web、命令行和GUI應(yīng)用的PHP框架。這是一個(gè)非常易于使用的框架,非常適合初學(xué)者到高級(jí)程序員。對(duì)于初學(xué)者,Seagull有一個(gè)范例應(yīng)用庫,可以自己設(shè)定后滿足自身需求;對(duì)于高級(jí)開發(fā)者,Seagull提供了眾多選擇包括最佳實(shí)踐、標(biāo)準(zhǔn)、模塊化的代碼基,這些都可以幫助快速簡單地構(gòu)建Web應(yīng)用程序。Seagull有一個(gè)活躍的開發(fā)者社區(qū),內(nèi)有大量的支持性文檔和說明。

另外,可參考51CTO之前發(fā)布的國外十大最流行PHP框架排名一文。

概括

PHP框架為各種技術(shù)等級(jí)的開發(fā)者減少了重復(fù)編碼的需求、加快了開發(fā)進(jìn)程,并在創(chuàng)建web應(yīng)用時(shí)確保正確的編碼。這不僅加快了富應(yīng)用開發(fā)的進(jìn)程,同時(shí)也通過減少代碼的安全漏洞而增強(qiáng)了PHP的安全性。

雖然一些專家級(jí)PHP程序員覺得沒有必要使用框架開發(fā)Web應(yīng)用程序,但PHP框架仍然可以是快速開發(fā)的優(yōu)秀解決方案,比如在工期很緊的情況下。從初級(jí)到中級(jí)開發(fā)者,框架可以提高PHP的學(xué)習(xí),同時(shí)促進(jìn)良好的代碼編寫和減少壞代碼。

今天有很多的PHP框架可用,因此開發(fā)者肯定能從中找到一個(gè)適合自己的框架:功能、支持、速度、可擴(kuò)展性等。

【編輯推薦】

  1. 22個(gè)開源的PHP框架
  2. 國外十大最流行PHP框架排名
  3. 國外主流PHP框架對(duì)比評(píng)測(cè)
  4. 20個(gè)非常有用的PHP類庫
  5. 如何學(xué)習(xí)一個(gè)新的PHP框架
責(zé)任編輯:yangsai 來源: CSDN
相關(guān)推薦

2011-04-14 09:30:15

集合框架

2017-07-03 13:33:42

AndroidItemDecorat

2020-10-12 08:43:25

Java基礎(chǔ)知識(shí)

2011-03-08 12:59:38

proftpd

2014-11-21 10:50:26

JavaString

2010-05-11 10:29:06

Unix awk

2014-05-19 15:52:57

Apache StraApache

2013-09-27 11:33:57

交換機(jī)技術(shù)Vlan技術(shù)

2014-04-25 10:05:42

OpenStack私有云公共云

2024-01-24 11:24:03

C++編程異常處理

2016-10-08 21:12:36

CopyleftCopyright開源

2009-11-23 19:24:01

PHP面向?qū)ο缶幊?/a>

2021-04-30 07:47:41

邊緣設(shè)備網(wǎng)絡(luò)

2012-09-26 10:02:44

框架開發(fā)項(xiàng)目

2014-01-03 10:59:34

2023-09-21 09:00:00

Merge Que開發(fā)工具Mergify

2023-03-06 08:01:25

structGo語言

2021-12-24 17:01:29

Linux工具系統(tǒng)

2024-01-01 08:57:55

ODBCSqlServer數(shù)據(jù)庫

2024-06-14 08:00:46

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)