Laravel框架從9處助力Web應(yīng)用開發(fā)
譯文【51CTO.com快譯】
由Taylor Otwell于2011年開發(fā)的Laravel PHP框架,是軟件開發(fā)領(lǐng)域的一項(xiàng)創(chuàng)新。它憑借著敏捷的開發(fā)方式,在眾多PHP框架中脫穎而出。通過它所提供的各項(xiàng)優(yōu)勢(shì)和強(qiáng)大的功能,用戶可以在遵循MVC模式的基礎(chǔ)上,更快地構(gòu)建出穩(wěn)定且自定義的Web應(yīng)用。這些應(yīng)用不但非常易于維護(hù)和升級(jí),而且其模塊化和可擴(kuò)展的代碼也便于各類開發(fā)人員所理解。
本文將向您介紹什么是Laravel,以及它將如何從九個(gè)方面提高Web應(yīng)用的開發(fā)效率和競(jìng)爭(zhēng)優(yōu)勢(shì):
Laravel框架的歷史和演變
Laravel是一個(gè)開源框架,旨在利用MVC架構(gòu)模式,基于Symfony(譯者注:一個(gè)開源的PHP Web框架)來創(chuàng)建Web應(yīng)用程序。開發(fā)人員可以使用它所提供的各種出色的API,來加快開發(fā)的進(jìn)程,并簡(jiǎn)化目標(biāo)網(wǎng)站構(gòu)建。
自2011年首次被推出以來,Laravel持續(xù)得到了迭代。它的每一次升級(jí)與發(fā)布都會(huì)帶來新的功能。其中,Laravel 1被設(shè)計(jì)為CodeIgniter(譯者注:一個(gè)簡(jiǎn)單快速的PHP MVC 框架)的替代產(chǎn)品,并且具有對(duì)于身份驗(yàn)證、模型、本地化、視圖、路由、會(huì)話和其他機(jī)制的內(nèi)置支持。
但是,Laravel 1缺少對(duì)于控制器的支持,這限制了它成為一款真正的MVC框架(請(qǐng)參見--https://dzone.com/articles/traits-of-net-mvc-framework-for-web-app-developmen)。后續(xù)的Laravel 2對(duì)此進(jìn)行了改進(jìn)。到了Laravel 3發(fā)行時(shí),該平臺(tái)已經(jīng)擁有了大量基于用戶的新功能,其中包括:命令行界面、以及對(duì)于數(shù)據(jù)庫(kù)管理系統(tǒng)的支持等。
最新版本--Laravel 7于2020年3月3日發(fā)布。它提供了諸如:Laravel Airlock、Blade Component Tags、Custom Eloquent Casts、Route Model Binding Improvements、以及Fluent String等功能。
Laravel如何助力Web應(yīng)用的開發(fā)項(xiàng)目
1.提供認(rèn)證和授權(quán)系統(tǒng)
Web應(yīng)用程序的所有者需要確保不會(huì)出現(xiàn):未經(jīng)授權(quán)的用戶能夠訪問到付費(fèi)資源的情況。而Laravel恰好為實(shí)現(xiàn)身份驗(yàn)證提供了直接的解決方案。通過使用該框架,您可以方便地組織并實(shí)現(xiàn)授權(quán)的基本邏輯,以及控制用戶對(duì)于資源數(shù)據(jù)庫(kù)的各項(xiàng)輸入。
2.為加快Web應(yīng)用的開發(fā),而提供工具集成
Laravel能夠吸引企業(yè)用戶的一個(gè)方面在于:它可以加快開發(fā)的速度,并縮短應(yīng)用程序的面世時(shí)間。Laravel通過支持緩存后端,來提高Web應(yīng)用程序的性能。雖然Laravel被默認(rèn)配置為使用文件緩存驅(qū)動(dòng)程序,來適合小型項(xiàng)目,但是您也可以構(gòu)造出多個(gè)緩存配置項(xiàng)。
3.針對(duì)常見技術(shù)漏洞的安全解決方案
包括Web應(yīng)用在內(nèi)的所有軟件都不可避免地需要處置各類安全問題。而Laravel恰好以其一流的Web安全措施而聞名。它提供了針對(duì)各類關(guān)鍵的安全漏洞防護(hù),其中包括:SQL注入、跨站點(diǎn)腳本、以及跨站點(diǎn)請(qǐng)求偽造等。同時(shí),Laravel本身也比其他框架具有更嚴(yán)格的安全特性。它的代碼庫(kù)得到了社區(qū)嚴(yán)密審查與保護(hù)。
4.與郵件服務(wù)的集成
Web應(yīng)用與郵件服務(wù)的集成,能夠使您的用戶接收到有關(guān)成功注冊(cè)、促銷優(yōu)惠、公告信息等的郵件類通知。Laravel通過SwiftMailer庫(kù)提供了直接的API,以及SMTP、Mandrill、Mailgun、Amazon SES、SparkPost、PHP的“郵件”功能、和“sendmail”等驅(qū)動(dòng)程序。
完成集成后,應(yīng)用程序可以通過基于云的服務(wù)、或本地服務(wù),來發(fā)送各種郵件警報(bào)。此外,Laravel還支持通過諸如:SMS和Slack等其他渠道的通知類型。
5.配置錯(cuò)誤處理
通常情況下,軟件的響應(yīng)速度、應(yīng)用程序的性能、可用性、甚至是錯(cuò)誤處理(Error Handling)機(jī)制,都會(huì)直接影響到用戶在體驗(yàn)軟件時(shí)的滿意度。
數(shù)據(jù)輸入表單(Data-entry forms)最容易潛藏用戶輸入中的各項(xiàng)錯(cuò)誤。在此類情況發(fā)生時(shí),我們需要通過以彈出錯(cuò)誤提示的方式告知用戶:錯(cuò)誤來自用戶,而非該應(yīng)用本身,并且需要引導(dǎo)用戶修正其輸入信息。
在默認(rèn)情況下,Laravel為各種新的項(xiàng)目配置了錯(cuò)誤與異常處理的功能。此外,該框架也能夠與那些支持各種日志處理程序的Monolog(譯者注:一種支持PHP 5.3以上的日志記錄工具)日志庫(kù),集成到一起。
6.自動(dòng)化測(cè)試
測(cè)試對(duì)于確保Web應(yīng)用能夠按照預(yù)期運(yùn)行,并提供出色的用戶體驗(yàn)是至關(guān)重要的。如果未經(jīng)測(cè)試,開發(fā)人員將無法識(shí)別或修復(fù)各類缺陷、錯(cuò)誤、以及系統(tǒng)崩潰等。而Laravel能夠提供自動(dòng)化測(cè)試的內(nèi)置功能。
現(xiàn)有的PHPUnit(譯者注:一種PHP測(cè)試框架)已經(jīng)被包含在Laravel中,并且為Web應(yīng)用預(yù)先安裝了phpunit.xml文件。此外,它還允許開發(fā)人員模擬最終用戶的行為,以便對(duì)應(yīng)用程序開展各項(xiàng)動(dòng)畫類測(cè)試。例如:他們可以通過點(diǎn)擊鏈接,請(qǐng)求Web應(yīng)用,以及填寫表單,來分析實(shí)際的輸出結(jié)果。
7.將“業(yè)務(wù)邏輯代碼”與“演示代碼”分離
作為一種MVC框架,Laravel能夠?qū)⑦壿嫶a與演示代碼相分離。據(jù)此,HTML布局設(shè)計(jì)人員可以在無需開發(fā)人員介入的情況下,輕松地更改現(xiàn)有的網(wǎng)頁(yè)設(shè)計(jì),進(jìn)而大幅節(jié)省人力成本。此外,如果能夠在開發(fā)的早期階段就分離出代碼庫(kù),那么開發(fā)人員也更快地實(shí)現(xiàn)各項(xiàng)功能性請(qǐng)求,并修復(fù)各種缺陷。
8.計(jì)劃任務(wù)的配置和管理
大多數(shù)Web應(yīng)用都需要某個(gè)系統(tǒng)來實(shí)現(xiàn)計(jì)劃任務(wù)、或自動(dòng)化數(shù)據(jù)庫(kù)的清理。Laravel不再需要通過生成Cron條目,來安排每天的各項(xiàng)任務(wù),以及將多個(gè)Cron條目添加到服務(wù)器中。Laravel的命令調(diào)度程序允許開發(fā)人員在其框架內(nèi)自行定義命令調(diào)度程序,而且服務(wù)器端僅需要一個(gè)Cron條目即可。
9.隊(duì)列系統(tǒng)的配置
隨著越來越多的流量涌入Web應(yīng)用,我們往往希望系統(tǒng)能夠在持續(xù)穩(wěn)步增加負(fù)載的前提下,既保持?jǐn)?shù)據(jù)的完整性,又并保障整體的性能與速度。此時(shí),消息隊(duì)列系統(tǒng)正好可以派上用場(chǎng)。Laravel的隊(duì)列服務(wù)能夠提供橫跨各種隊(duì)列后端的統(tǒng)一API。各種隊(duì)列通過將冗長(zhǎng)的任務(wù)處理適當(dāng)?shù)叵蚝笸七t,以便Web應(yīng)用的性能和每分鐘能夠接收的請(qǐng)求速度得到大幅提升。
用Laravel設(shè)計(jì)您的Web應(yīng)用程序
通過上述討論,我們可以看到Laravel PHP框架不但能夠加快Web應(yīng)用的開發(fā)速度,并讓W(xué)eb和移動(dòng)應(yīng)用設(shè)計(jì)人員輕松開展工作,而且能夠確保為用戶享用到最佳的功能與體驗(yàn)。
原標(biāo)題:9 Ways Laravel Framework Improves Web App Development ,作者:Waqar Ahmed
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】