php開發(fā)中采用框架有什么樣的好處
我們?cè)趐hp開發(fā)中經(jīng)常聽到采用php開源框架,那么采用開源框架有什么好處呢? 我們?cè)诹私忾_源框架之前首先來了解什么是框架。
框架是一個(gè)應(yīng)用程序的半成品。框架提供了可在應(yīng)用程序之間共享的可覆用的公共結(jié)構(gòu)。開發(fā)者把框架融入他們自己的應(yīng)用程序,并加以擴(kuò)展,以滿足他們特定的需要。框架和工具包的不同之處在于,框架提供了一致的結(jié)構(gòu),而不僅僅是一組工具類。
框架其實(shí)就是一組組件,供你選用完成你自己的系統(tǒng)。簡(jiǎn)單說就是使用別人搭好的舞臺(tái),你來做表演。而且,框架一般是成熟的,不斷升級(jí)的軟件。
可以說,一個(gè)框架是一個(gè)可復(fù)用的設(shè)計(jì)構(gòu)件,它規(guī)定了應(yīng)用的體系結(jié)構(gòu),闡明了整個(gè)設(shè)計(jì)、協(xié)作構(gòu)件之間的依賴關(guān)系、責(zé)任分配和控制流程,表現(xiàn)為一組抽象類以及其實(shí)例之間協(xié)作的方法,它為構(gòu)件復(fù)用提供了上下文(Context)關(guān)系。因此構(gòu)件庫(kù)的大規(guī)模重用也需要框架。
因?yàn)檐浖到y(tǒng)發(fā)展到今天已經(jīng)很復(fù)雜了,特別是服務(wù)器端軟件,設(shè)計(jì)到的知識(shí),內(nèi)容,問題太多。在某些方面使用別人成熟的框架,就相當(dāng)于讓別人幫你完成一些基礎(chǔ)工作,你只需要集中精力完成系統(tǒng)的業(yè)務(wù)邏輯設(shè)計(jì)。而且框架一般是成熟,穩(wěn)健的,他可以處理系統(tǒng)很多細(xì)節(jié)問題,比如,事物處理,安全性,數(shù)據(jù)流控制等問題。還有框架一般都經(jīng)過很多人使用,所以結(jié)構(gòu)很好,所以擴(kuò)展性也很好,而且它是不斷升級(jí)的,你可以直接享受別人升級(jí)代碼帶來的好處。框架一般處在低層應(yīng)用平臺(tái)和高層業(yè)務(wù)邏輯之間的中間層。衡量應(yīng)用系統(tǒng)設(shè)計(jì)開發(fā)水平高低的標(biāo)準(zhǔn)就是:解耦性;你的應(yīng)用系統(tǒng)各個(gè)功能是否能夠徹底脫離?是否不相互依賴,也只有這樣,才能體現(xiàn)可維護(hù)性、可拓展性的軟件設(shè)計(jì)目標(biāo)。
總的來說,框架就是一個(gè)可以被廣泛應(yīng)用的架構(gòu)(如MVC),通常是大家常用而又沒什么變化的東西,人們就把它框架,讓大家節(jié)省時(shí)間。比如ThinkPHP就 是為了簡(jiǎn)化企業(yè)級(jí)應(yīng)用開發(fā)和敏捷WEB應(yīng)用開發(fā)而誕生的。最早誕生于2006年初,原名FCS,2007年元旦正式更名為ThinkPHP,并且遵循Apache2開源協(xié)議發(fā)布。早期的思想架構(gòu)來源于Struts,后來經(jīng)過不斷改進(jìn)和完善,同時(shí)也借鑒了國(guó)外很多優(yōu)秀的框架和模式,使用面向?qū)ο蟮拈_發(fā)結(jié)構(gòu)和MVC模式,融合了Struts的Action和Dao思想和JSP的TagLib(標(biāo)簽庫(kù))、RoR的ORM映射和ActiveRecord模式,封裝了CURD和一些常用操作,單一入口模式等,在模版引擎、緩存機(jī)制、認(rèn)證機(jī)制和擴(kuò)展性方面均有獨(dú)特的表現(xiàn).
我們已經(jīng)了解了什么是框架那么我們接下來看看它有什么好處。
第一:
mvc模式
PHP工作起來本身就像是一個(gè)模板引擎。但是,如果你很不負(fù)責(zé)任的使用它,這樣將會(huì)使你的代碼很丑陋,將會(huì)使代碼難以維護(hù)。
Mvc模式:
模型:通常代表著你的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫(kù)的接口;
視圖:包含了頁面模板和輸出;
控制器:處理頁面的請(qǐng)求。
這種分離是代碼更整潔,更容易維護(hù)。
第二:
安全
在PHP中,可能你已經(jīng)想過很多辦法對(duì)輸入和輸出進(jìn)行過濾了,以防止您的網(wǎng)站被攻擊。手動(dòng)的處理這些過濾將會(huì)很累,當(dāng)你使用了框架以后,你就可以忘掉那些累了。
對(duì)于一個(gè)框架,大部分過濾工作可以幫您自動(dòng)完成。例如codeigniter框架:
通過數(shù)據(jù)庫(kù)的任何值將會(huì)被過濾這樣防止sql注入性攻擊。
所有html可以自動(dòng)生成,如表單輔助函數(shù)和url輔助函數(shù)可以對(duì)輸出自動(dòng)過濾所有用戶輸入的數(shù)據(jù)都可以進(jìn)行過濾防止xss攻擊。
想要加密cookie只需要改變一個(gè)配置選項(xiàng)就可以了。
第三:
使用少的代碼,提高開發(fā)速度
所有的PHP框架都會(huì)有一個(gè)學(xué)習(xí)曲線,但是一點(diǎn)你越過了谷峰,你就會(huì)享受快速開發(fā)帶來的樂趣了。
使用框架意味著你寫更少的代碼,這就意味著更少的時(shí)間花在打字上面。你不必為每個(gè)項(xiàng)目去查找第三方的類庫(kù),因?yàn)榭蚣芤呀?jīng)幫你提供了很多類庫(kù)了。
此外,因?yàn)槟愕拇a已經(jīng)以一種方式默認(rèn)的組織起來了,這樣你就能更快的發(fā)現(xiàn)錯(cuò)誤和維護(hù)代碼,對(duì)你現(xiàn)在的代碼進(jìn)行更改。
第四:
公共代碼和類庫(kù)
PHP是一門偉大的web開發(fā)語言,它提供了無數(shù)的工具和類庫(kù)。但是當(dāng)你試圖單獨(dú)建立一個(gè)網(wǎng)站的時(shí)候,你要么自己寫代碼,要么使用第三方的代碼。
所有優(yōu)秀的php框架都會(huì)提供一些類庫(kù)和輔助函數(shù)給你,它們能給你提供以下幫助:表單驗(yàn)證、輸入輸出的數(shù)據(jù)過濾、數(shù)據(jù)庫(kù)抽象、Session和cookie處理、Email、日歷和分頁等,這樣的例子不勝枚舉。更何況,還有一些社區(qū)提供的大量的插件,你可以將它添加到你的框架中。
使用php框架的好處有很多,有可能使用php框架不是你最佳的選擇,但是從當(dāng)前網(wǎng)絡(luò)新技術(shù)的發(fā)展角度來看,php框架還是值得探討的。