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