摘要:原文譯文譯者包括超過(guò)個(gè)新特性。這個(gè)默認(rèn)命名空間可以很方便的使用命令更換為其他名字。事實(shí)上,對(duì)于負(fù)責(zé)的任務(wù),使用是非常好的方法。其它新特性正在翻譯中,您可以在關(guān)注最新的翻譯動(dòng)態(tài)
原文: http://laravel.com/docs/master/releases#laravel-5.0
譯文: http://discuss.flarum.org.cn/24-laravel-5
譯者: flarum
Laravel 5.0 包括超過(guò) 22 個(gè)新特性。
Laravel 5.0 引入了一個(gè)新鮮的應(yīng)用架構(gòu)到默認(rèn)的 Laravel 項(xiàng)目中,這個(gè)架構(gòu)會(huì)提供更好的 Laravel 應(yīng)用的服務(wù)。同時(shí)還加入了新的自動(dòng)加載標(biāo)準(zhǔn) (PSR-4) 。主要改進(jìn)如下:
1. 新的文件夾結(jié)構(gòu)原有的 app/models 目錄已全部刪除。相反,你所有的代碼,直接放在 app 文件夾中,并且,默認(rèn)情況下使用 App 命名空間。這個(gè)默認(rèn)命名空間可以很方便的使用 app:name Artisan 命令更換為其他名字。
控制器,中間件,和請(qǐng)求(Laravel 5.0 中新增的類型)現(xiàn)在放到了 app/Http 目錄下,因?yàn)樵谀愕膽?yīng)用程序中,這些都是負(fù)責(zé) HTTP 傳輸層相關(guān)的類。所有的路由過(guò)濾器,所有的中間件,都放到了它們自己的類文件中,而不是像以前那樣放在多帶帶的一個(gè)文件里。
app/Providers 目錄替換了Laravel 4.X 的 app/start 文件。這些服務(wù)提供者(Service Provider)為您的應(yīng)用程序提供不同的引導(dǎo)功能,例如錯(cuò)誤處理,日志,路由加載,等等。當(dāng)然,你可以自行為應(yīng)用程序創(chuàng)建其它的 Service Provider。
語(yǔ)言文件和視圖被移到了 resources 目錄。
2. Contracts所有主要的 Laravel 組件實(shí)現(xiàn)接口都放在 illuminate/contracts 庫(kù),沒(méi)有外部依賴。
關(guān)于 contracts 的更多信息,可以查看 contracts 文檔。
3. 路由緩存如果你的應(yīng)用程序使用的控制器路由,你可以使用 route:cache Artisan 命令加速你的路由表。如果你的應(yīng)用程序使用了超過(guò) 100 個(gè)路由,那么這個(gè)性能提升是非常顯著的。
4. 路由中間件除了 Laravel 4 風(fēng)格的路由 "filters", Laravel 5 支持 HTTP 中間件,而且包含認(rèn)證和 CSRF 功能的 "filters" 也已經(jīng)轉(zhuǎn)換為了中間件。中間件提供了單一的,一致的接口來(lái)取代所有類型的過(guò)濾器,在 Request 進(jìn)入你的應(yīng)用程序之前,允許您輕松地檢查,甚至拒絕它們。
想了解中間件的更多信息,查看 Middleware 文檔。
5. 控制器方法注入除了現(xiàn)有的構(gòu)造函數(shù)注入,你現(xiàn)在可以使用類型約束特性來(lái)指定控制器的依賴。IOC 容器會(huì)自動(dòng)注入依賴,即使路由包含了其他參數(shù):
phppublic function createPost(Request $request, PostRepository $posts) { // }6. Authentication 腳手架
在 resources/views/auth 中,為以下控制器,包括用戶注冊(cè),認(rèn)證,和密碼重置,提供了開(kāi)箱即用功能,而且包含了簡(jiǎn)單的視圖。此外,框架還包括了 "users" 表的遷移。這樣就可以快速開(kāi)發(fā)出應(yīng)用程序想要實(shí)現(xiàn)的功能,而不用將精力浪費(fèi)在認(rèn)證模塊上。認(rèn)證功能的視圖可以通過(guò) auth/login 和 auth/register 訪問(wèn)。AppServicesAuthRegistrar 負(fù)責(zé)用戶驗(yàn)證和創(chuàng)建。
7. Event Objects你現(xiàn)在可以將事件定義為對(duì)象,而不是簡(jiǎn)單地使用字符串。例如,看看下面的事件:
phpclass PodcastWasPurchased { public $podcast; public function __construct(Podcast $podcast) { $this->podcast = $podcast; } }
事件 dispatched:
phpEvent::fire(new PodcastWasPurchased($podcast));
當(dāng)然,事件處理程序接收到的是事件對(duì)象,而不是數(shù)據(jù)列表:
phpclass ReportPodcastPurchase { public function handle(PodcastWasPurchased $event) { // } }
想了解更多關(guān)于事件處理的信息,查看 Event 文檔。
8. 命令 / 隊(duì)列除了 Laravel 4 支持的 job 格式的隊(duì)列,Laravel 5 允許你把隊(duì)列作為簡(jiǎn)單的 command 對(duì)象。這些命令在 app/Commands 目錄里。以下的命令示例:
phpclass PurchasePodcast extends Command implements SelfHandling, ShouldBeQueued { use SerializesModels; protected $user, $podcast; /** * Create a new command instance. * * @return void */ public function __construct(User $user, Podcast $podcast) { $this->user = $user; $this->podcast = $podcast; } /** * Execute the command. * * @return void */ public function handle() { // Handle the logic to purchase the podcast... event(new PodcastWasPurchased($this->user, $this->podcast)); } }
Laravel 控制器使用新的 DispatchesCommands 特性,讓你輕松的執(zhí)行命令調(diào)度:
php$this->dispatch(new PurchasePodcastCommand($user, $podcast));
當(dāng)然,你也可以使用 command 方式(無(wú)隊(duì)列)。事實(shí)上,對(duì)于負(fù)責(zé)的任務(wù),使用 command 是非常好的方法。更多信息,查看 command bus 文檔。
9. 數(shù)據(jù)庫(kù)隊(duì)列現(xiàn)在 Laravel 新增了數(shù)據(jù)庫(kù)隊(duì)列驅(qū)動(dòng),提供一個(gè)簡(jiǎn)單的,本地隊(duì)列驅(qū)動(dòng),不需要額外的安裝包。
【其它新特性正在翻譯中,您可以在 http://discuss.flarum.org.cn/24-laravel-5 關(guān)注最新的翻譯動(dòng)態(tài)...】
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/20940.html
摘要:杰出的數(shù)據(jù)庫(kù)遷移工具和緊密集成的單元測(cè)試支持,這些工具賦予你構(gòu)建任何應(yīng)用的能力。淺談應(yīng)公司要求,現(xiàn)在用重新搭一個(gè)框架,接觸了幾天對(duì)它也有了一定的了解。淺談支持,支持單元測(cè)試。更加嚴(yán)謹(jǐn)了,異常嚴(yán)謹(jǐn)?shù)腻e(cuò)誤檢測(cè)和安全機(jī)制。 自從接觸php開(kāi)始,用的就是thinkphp框架,它給我的感覺(jué)是輕量,且容易上手。后來(lái)進(jìn)了一家外包公司又用了laravel框架,個(gè)人覺(jué)得laravel還是很高大上的,功能...
摘要:發(fā)布于年月,從那時(shí)起大約每六個(gè)月會(huì)發(fā)布一次的新版本。將會(huì)支持相對(duì)較新的來(lái)管理項(xiàng)目中的環(huán)境文件。棄用和輔助函數(shù)所有的和全局輔助函數(shù)都已棄用,將在中刪除。將返回更干凈的相同值。和通知和通知已從主項(xiàng)目中刪除,并提取到第三方軟件包中。 showImg(https://segmentfault.com/img/remote/1460000018269419?w=585&h=400); 無(wú)論是從零...
摘要:來(lái)看看具體的步驟注冊(cè)路由在中,注冊(cè)我們的編輯頁(yè)面的路由這個(gè)路由接受一個(gè)參數(shù),意為文章的,我們會(huì)需要根據(jù)這個(gè)來(lái)查詢我們要修改的文章。然后渲染視圖,并將查詢到的和傳給視圖。下面我打算再開(kāi)一個(gè)系列說(shuō)說(shuō)的新特性 原文來(lái)自https://laravist.com/article/20 免費(fèi)視頻教程地址 https://laravist.com/series/laravel-5-basic La...
摘要:原文發(fā)表在我的個(gè)人網(wǎng)站系列入門教程二最適合中國(guó)人的教程本教程示例代碼見(jiàn)大家在任何地方卡住,最快捷的解決方式就是去看我的示例代碼。 原文發(fā)表在我的個(gè)人網(wǎng)站:Laravel 5 系列入門教程(二)【最適合中國(guó)人的 Laravel 教程】 本教程示例代碼見(jiàn):https://github.com/johnlui/Learn-Laravel-5 大家在任何地方卡住,最快捷...
摘要:原文地址為方法類函數(shù)生成文檔已經(jīng)成為了程序員的習(xí)慣所以需要知道通過(guò)源代碼生成獨(dú)立的文檔本文中我會(huì)介紹一款新的文檔生成工具什么是是插入到類接口方法屬性頂部的多行注釋為了闡明這個(gè)我們看下中的代碼片段開(kāi)始于結(jié)束于每行之間使用當(dāng)定義一個(gè)類屬性或者 原文地址: Generating PHP Documentation with Sami 為方法, 類, 函數(shù)生成文檔已經(jīng)成為了程序員的習(xí)慣, 所以...
閱讀 2938·2023-04-26 02:22
閱讀 2292·2021-11-17 09:33
閱讀 3144·2021-09-22 16:06
閱讀 1078·2021-09-22 15:54
閱讀 3541·2019-08-29 13:44
閱讀 1921·2019-08-29 12:37
閱讀 1327·2019-08-26 14:04
閱讀 1920·2019-08-26 11:57