《PHP編程:Laravel 5.0 發(fā)布 新版本特性詳解》要點(diǎn):
本文介紹了PHP編程:Laravel 5.0 發(fā)布 新版本特性詳解,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
PHP編程譯注: 期待 Laravel 5.0 已經(jīng)很久很久了, 之前跳票說(shuō)要到今年一月份發(fā)布. 從一月份就一直在刷新官網(wǎng)和博客, 始終沒(méi)有更新的消息, 前幾天終于看到官網(wǎng)文檔切換到了 5.0 版. 新版本帶來(lái)了眾多令人激動(dòng)的新特性, 尤其是定時(shí)任務(wù)隊(duì)列和表單哀求兩個(gè)特性, 光看一下更新說(shuō)明中的簡(jiǎn)單介紹都忍不住要上手嘗試了. 今天總算抽出一點(diǎn)時(shí)間把官方的新特性說(shuō)明文檔簡(jiǎn)單地翻譯了一下, 希望所有喜歡 Laravel 框架的朋友都能感受到這個(gè)版本帶來(lái)的激動(dòng)人心的改變. 當(dāng)然, 如果你需要的是 Phalcon 那樣的性能, 那它肯定不是你需要的. 如果你是因?yàn)樘摂M主機(jī)不支持 php 5.4 而不能享受 Laravel, 那你還不扔了你的虛擬主機(jī)??? 阿里云\騰訊云\linode... VPS的選擇不要太多...
PHP編程Laravel 5.0
PHP編程Laravel 5.0 引入了全新的項(xiàng)目目錄結(jié)構(gòu). 新的目錄結(jié)構(gòu)更有利于用 Laravel 來(lái)創(chuàng)建應(yīng)用. 5.0 版從頭到尾都采用了新的 PSR-4 自動(dòng)加載尺度. 以下是 5.0 版主要的新特性:
PHP編程目錄布局
PHP編程以前版本中的 app/models 目錄被整個(gè)移除. 如今你可以直接把代碼放在 app 目錄下, 該目錄下的所有代碼默認(rèn)會(huì)被組織到 app 定名空間. 這個(gè)定名空間是可以通過(guò)新增加的 Artisan 命令 app:name 來(lái)修改的.
PHP編程Controllers, middleware 和 requests (Laravel 5.0 新增加的一種類(lèi)) 被組織到 app/Http 目錄, 因?yàn)樗麄兌际桥c你應(yīng)用的 HTTP 傳輸層相關(guān)的類(lèi). 與之前把所有路由過(guò)濾器放到單一的 filters 文件下不同, 現(xiàn)在所有的 middleware (類(lèi)似之前的 route filter) 被分別存放到各自本身的類(lèi)文件中.
PHP編程新版本中增加了一個(gè) app/Providers 目錄來(lái)代替之前 4.x 版本的 app/start 文件. 這些 service providers 為應(yīng)用提供各種各樣的引導(dǎo)辦法, 比如錯(cuò)誤處理, 日志記錄, 路由加載等. 除此之外你當(dāng)然也可以創(chuàng)建額外的 service providers.
PHP編程利用的語(yǔ)言文件和視圖被移到了 resources 目錄.
PHP編程Contracts
PHP編程Laravel 的所有主要組件都實(shí)現(xiàn)了存放在 illuminate/contracts 倉(cāng)庫(kù)中的接口. 該倉(cāng)庫(kù)沒(méi)有額外的依賴(lài)項(xiàng). 擁有這樣一個(gè)便利的, 集中存放的接口集合, 你就可以很容易地通過(guò)它來(lái)對(duì) Laravel Facades 進(jìn)行解耦和依賴(lài)注入方面的選擇和修改.
PHP編程了解有關(guān) contracts 的更多信息, 可以查看它的完備文檔.
路由緩存
PHP編程如果你的應(yīng)用由各種各樣的控制器路由 (controller routes) 組成, 你可以利用新增的 Artisan 命令 route:cache 大幅度提升路由的注冊(cè)速度. 這在路由數(shù)量超過(guò) 100 個(gè)的應(yīng)用中尤其有效, 可以 大幅度 提升整個(gè)應(yīng)用在路由部門(mén)的速度.
PHP編程路由中央件 (Route Middleware)
PHP編程在 4.0 版風(fēng)格的路由 "過(guò)濾器" 基礎(chǔ)上, 新版 5.0 已經(jīng)支持 HTTP 中間件, Laravel 自帶的 "authentication" 和 "filters" 已經(jīng)被轉(zhuǎn)換成中間件. 中間件為所有類(lèi)型的過(guò)濾器提供了單一接口, 你可以很容易地對(duì)哀求進(jìn)行審查和拒絕.
PHP編程了解有關(guān)中間件的更多信息, 可以查看它的完備文檔.
PHP編程控制器辦法注入
PHP編程除了現(xiàn)有的構(gòu)造器注入以外, 在新版本中還可以在控制器辦法中的依賴(lài)項(xiàng)進(jìn)行類(lèi)型約束. IoC container 會(huì)自動(dòng)注入依賴(lài)項(xiàng), 即使在路由包含其它參數(shù)的時(shí)候也是.
PHP編程用戶注冊(cè), 認(rèn)證以及暗碼重置控制器已經(jīng)內(nèi)置在 5.0 版的網(wǎng)站框架中, 除了控制器以外, 還有簡(jiǎn)單的視圖, 存放在 resources/views/auth 目錄. 除此之外, 網(wǎng)站初始框架中還包含了一個(gè) "users" 表的 migration 文件. 這些簡(jiǎn)單的資源幫助開(kāi)發(fā)者不用在用戶認(rèn)證功能上耗費(fèi)大量時(shí)間. 認(rèn)證相關(guān)的頁(yè)面可以通過(guò) auth/login 和 auth/register 這兩個(gè)路由訪問(wèn). App\Services\Auth\Registrar 服務(wù)負(fù)責(zé)處理創(chuàng)建和認(rèn)證用戶.
PHP編程變亂對(duì)象
PHP編程在新版本中, 你可以把變亂定義成對(duì)象而不是字符串. 看下面的例子:
PHP編程Event::fire(new PodcastWasPurchased($podcast));
當(dāng)然, 你的變亂處理程序收到的也不再是一個(gè)數(shù)據(jù)列表, 而是一個(gè)變亂對(duì)象:
PHP編程命令/隊(duì)列
PHP編程在 4.0 版支持的任務(wù)隊(duì)列基礎(chǔ)上, 5.0 支持把任務(wù)隊(duì)列定義為簡(jiǎn)單的命令對(duì)象. 這些命令寄存在 app/Commands 目錄. 下面是一個(gè)簡(jiǎn)單的命令示例:
PHP編程$this->dispatch(new PurchasePodcastCommand($user, $podcast));
當(dāng)然, 你不僅可以把命令用于任務(wù)隊(duì)列(非同步執(zhí)行), 也可以用于同步任務(wù). 事實(shí)上, 把你的應(yīng)用必要執(zhí)行的復(fù)雜任務(wù)封裝成命令是一個(gè)很好的選擇. 了解有關(guān)命令的更多信息, 可以查看命令橋的詳細(xì)文檔.
PHP編程數(shù)據(jù)庫(kù)行列步隊(duì)
PHP編程新版 Laravel 包括 database 隊(duì)列驅(qū)動(dòng), 提供簡(jiǎn)單的, 本地的隊(duì)列驅(qū)動(dòng), 無(wú)需安裝額外的包. (譯注:比如讓不支持事務(wù)的數(shù)據(jù)庫(kù)進(jìn)行類(lèi)似事務(wù)的數(shù)據(jù)操作)
PHP編程Laravel 準(zhǔn)時(shí)任務(wù)
PHP編程在過(guò)去, 為了定時(shí)執(zhí)行控制臺(tái)任務(wù), 開(kāi)發(fā)者必須依賴(lài) Cron 任務(wù). 這帶來(lái)很大不便. 因?yàn)槎〞r(shí)任務(wù)并不包含在網(wǎng)站的源代碼中, 而且必須通過(guò) SSH 登陸到服務(wù)器去添加 Cron 任務(wù). 新版 Laravel 的定時(shí)任務(wù)允許開(kāi)發(fā)者在 Laravel 框架內(nèi)來(lái)定義定時(shí)執(zhí)行的命令, 然后只需要在服務(wù)器上定義一個(gè)總的 Cron 任務(wù)即可.
PHP編程好比:
PHP編程Tinker / Psysh
PHP編程php artisan tinker 命令在新版本中借助了 Justin Heleman 開(kāi)發(fā)的 Psysh. 如果你喜歡 Laravel 4.0 里的 Boris, 你肯定會(huì)喜歡 Psysh. Boris 在 Windows 下運(yùn)行得不好, Psysh 完全支持 Windows! 使用辦法和以前一樣:
PHP編程在 Laravel 5.0 中, 用 Vance Lucas 實(shí)現(xiàn)的 DotEnv 替代了以前版本中的嵌套結(jié)構(gòu), 容易讓人困惑的環(huán)境配置目錄. 這個(gè)框架提供了一種非常簡(jiǎn)單的管理環(huán)境配置的方式. 在 Laravel 5.0 中檢測(cè)和區(qū)分不同的運(yùn)行環(huán)境變得輕而易舉. 了解更多詳情, 請(qǐng)拜訪完整的配置文檔.
PHP編程Laravel Elixir
PHP編程由 Jeffrey Way 提供的 Laravel Elixir 提供了簡(jiǎn)明易懂的合并, 編譯資源文件的接口. 如果你曾經(jīng)對(duì)配置 Grunt 或者 Gulp 感到很頭年夜, 那么現(xiàn)在你得到解放了. Elixir 讓你可以輕松地借助 Gulp 來(lái)編譯你的 Less, Sass 和 CoffeeScript 文件. 它甚至可以替你執(zhí)行測(cè)試.
PHP編程了解 Elixir 的更多詳情, 請(qǐng)拜訪完整文檔.
PHP編程Laravel Socialite
PHP編程Laravel Socialite 只兼容 Laravel 5.0 以上版本的可選包, 它提供了完整而且上手毫無(wú)難度的 OAuth 辦理方案. 目前, Socialite 支持 Facebook, Twitter, Google 和 Github. 它看起來(lái)是這個(gè)樣子的:
PHP編程Flysystem 集成
PHP編程新版 Laravel 還包括了強(qiáng)大的 Flysystem 文件處理靜態(tài)庫(kù). 通過(guò)這個(gè)庫(kù), 開(kāi)發(fā)者可以輕易上手, 使用完全一致的 API 來(lái)實(shí)現(xiàn)本地, Amazon S3 或者 Rackspace 進(jìn)行文件存儲(chǔ). 比如, 在 Amazon S3 存儲(chǔ)一個(gè)文件, 可以簡(jiǎn)單到這樣:
PHP編程表單哀求
PHP編程Laravel 5.0 帶來(lái)了全新的 form requests, 它擴(kuò)展自 Illuminate\Foundation\Http\FormRequest 類(lèi). 這些哀求對(duì)象可以和控制器方法注入相結(jié)合, 提供一種全新的驗(yàn)證用戶輸入的方法. 簡(jiǎn)單舉一個(gè) FormRequest 的示例:
PHP編程控制器哀求簡(jiǎn)單驗(yàn)證
PHP編程Laravel 5.0 的控制器基類(lèi)還包含了一個(gè) ValidatesRequests 的 trait. 該 trait 提供了簡(jiǎn)單的 validate 方法, 用于驗(yàn)證哀求. 如果 FormRequests 對(duì)于你的應(yīng)用來(lái)說(shuō)太重了, 那你就可以用這個(gè)輕量版的:
PHP編程了解有關(guān) FormRequest 驗(yàn)證的更多細(xì)節(jié), 請(qǐng)查閱文檔.
PHP編程全新的天生器
PHP編程為了便利生成新的默認(rèn)應(yīng)用結(jié)構(gòu), 全新的 Artisan 生成命令已經(jīng)被添加到框架中. 你可以通過(guò) php artisan list 查看詳細(xì)命令.
PHP編程設(shè)置裝備擺設(shè)緩存
PHP編程通過(guò) config:cache 敕令, 可以把所有的配置項(xiàng)寫(xiě)入一個(gè)緩存文件中.
PHP編程Symfony VarDumper
PHP編程用于輸出變量信息進(jìn)行調(diào)試的輔助辦法 dd, 在新版本中進(jìn)行了升級(jí), 使用強(qiáng)大的 Symfony VarDumper. 它可以輸出帶有顏色高亮和數(shù)組折疊功能的調(diào)試信息. 你可以嘗試一下:
《PHP編程:Laravel 5.0 發(fā)布 新版本特性詳解》是否對(duì)您有啟發(fā),歡迎查看更多與《PHP編程:Laravel 5.0 發(fā)布 新版本特性詳解》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/12432.html