[TOC]
### **1、支持政策**
對于 LTS 版本,比如?[Laravel](http://laravelacademy.org/tags/laravel "View all posts in Laravel")?5.1,我們將會提供為期兩年的 bug 修復和三年的安全修復支持。LTS 版本將會提供最長時間的支持和維護。
對于其他通用版本,只提供六個月的 bug 修復和一年的安全修復支持,比如 Laravel?[5.2](http://laravelacademy.org/tags/5-2 "View all posts in 5.2")。
### **2、Laravel 5.2**
Laravel 5.2 在 5.1 基礎上繼續改進和優化,添加了許多新的功能特性:多[認證](http://laravelacademy.org/tags/%e8%ae%a4%e8%af%81 "View all posts in 認證")驅動支持、隱式[模型綁定](http://laravelacademy.org/tags/%e6%a8%a1%e5%9e%8b%e7%bb%91%e5%ae%9a "View all posts in 模型綁定")、簡化[Eloquent](http://laravelacademy.org/tags/eloquent "View all posts in Eloquent")?全局作用域、可選擇的認證腳手架、[中間件](http://laravelacademy.org/tags/%e4%b8%ad%e9%97%b4%e4%bb%b6 "View all posts in 中間件")組、[訪問頻率](http://laravelacademy.org/tags/%e8%ae%bf%e9%97%ae%e9%a2%91%e7%8e%87 "View all posts in 訪問頻率")限制、[數組](http://laravelacademy.org/tags/%e6%95%b0%e7%bb%84 "View all posts in 數組")輸入[驗證](http://laravelacademy.org/tags/%e9%aa%8c%e8%af%81 "View all posts in 驗證")優化等等。
#### **多認證驅動**
在之前的 Laravel 版本中,框架只支持默認的、基于 session 的認證驅動,且在單個應用中只能擁有一個認證[模型](http://laravelacademy.org/tags/%e6%a8%a1%e5%9e%8b "View all posts in 模型")類(對應單張表),這為我們實現某型功能,比如前后端分離登錄帶來麻煩。
我們對此進行了改進,在 Laravel 5.2 中,你可以定義多個認證驅動,還有多個認證模型以及用戶表,并且可以獨立控制其認證處理(登錄、注冊、密碼重置)。例如,如果你的應用包含一個后臺管理員用戶表和一個前臺學生用戶表,現在你可以使用?`Auth`?門面來實現后臺用戶和學生用戶的獨立登錄而不相互影響。
#### **認證腳手架**
通過多認證驅動,Laravel 可以輕松處理后臺用戶認證;此外,Laravel 5.2 還提供了便捷的方式來創建前臺認證視圖,只需在終端執行如下 Artisan 命令即可:
~~~
php artisan make:auth
~~~
該命令會生成純文本的、兼容 Bootstrap 樣式的視圖用于登錄、注冊和密碼重置。該命令還會使用相應[路由](http://laravelacademy.org/tags/%e8%b7%af%e7%94%b1 "View all posts in 路由")更新路由文件。
> 注意:該功能特性只能在新應用中使用,不能再應用升級過程中使用。
#### **隱式模型綁定**
隱式模型綁定使得在路由或控制器中直接注入相應模型實例更加便捷。假設你有一個路由定義如下:
~~~
use App\User;
Route::get('/user/{user}', function (User $user) {
return $user;
});
~~~
在 Laravel 5.1 中,你需要通過?`Route::model`?方法告訴 Laravel 注入?`App\User`?實例以匹配路由定義中的?`{user}`參數。
現在,在 Laravel 5.2 中,框架將會基于相應 URI 片段自動注入模型,從而允許你快速訪問需要的模型實例。
如果路由參數片段?`{user}`?匹配路由閉包或控制器方法中相應變量?`$user`,并且被類型聲明為一個 Eloquent 模型類的話,Laravel 將會自動注入該模型。
更多隱式模型綁定詳情請查看?[Laravel 5.2 文檔 HTTP 路由模型綁定部分](http://laravelacademy.org/post/2784.html#ipt_kb_toc_2784_18)。
#### **中間件組**
中間件組允許你通過單個方便的鍵來對相關路由中間件進行[分組](http://laravelacademy.org/tags/%e5%88%86%e7%bb%84 "View all posts in 分組"),從而為某個路由一次指定多個中間件。例如,在同一個應用中構建 Web UI 或 API 時這一特性很有用,你可以將 session 和 csrf 路由分組到一個?`web`?組,或者將訪問頻率限制分組到?`api`?中。
實際上,默認的 Laravel 5.2 應用結構采用的正是這個方法。例如,在默認的?`App\Http\Kernel.php`?文件中你會看到如下內容:
~~~
/**
* The application's route middleware groups.
*
* @var array
*/
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
],
'api' => [
'throttle:60,1',
],
];
~~~
然后,`web`?組像這樣分配給路由:
~~~
Route::group(['middleware' => ['web']], function () {
//
});
~~~
#### **訪問頻率限制**
一個新的訪問頻率限制中間件已經被內置到框架中,從而允許你輕松限制給定 IP 地址在指定時間內對某個路由發起請求的數目。例如,要限制某個 IP 地址每分鐘只能訪問某個路由 60 次,你可以這么做:
~~~
Route::get('/api/users', ['middleware' => 'throttle:60,1', function () {
//
}]);
~~~
#### **數組輸入驗證**
在 Laravel 5.2 可輕松實現表單字段的數組輸入驗證。例如,要驗證給定數組輸入字段中的每一個?`email`?是唯一的,可以這么實現:
~~~
$validator = Validator::make($request->all(), [
'person.*.email' => 'email|unique:users'
]);
~~~
同樣,你可以在語言文件中使用?`*`?來指定驗證數組字段:
~~~
'custom' => [
'person.*.email' => [
'unique' => 'Each person must have a unique e-mail address',
]
],
~~~
#### **Eloquent 全局作用域優化**
在之前的 Laravel 版本,Eloquent 全局作用域的實現是復雜且容易出錯的,但在 Laravel 5.2 中,全局查詢作用域只需實現一個簡單的方法 apply 即可。
關于全局作用域詳情請查看[全局作用域文檔](http://laravelacademy.org/post/2995.html#global-scopes)。
- 序言
- 發行版本說明
- 升級指南
- 貢獻代碼
- 開始
- 安裝
- 配置
- Laravel Homestead
- 基礎
- HTTP 路由
- HTTP 中間件
- HTTP 控制器
- HTTP 請求
- HTTP 響應
- 視圖
- Blade 模板引擎
- 架構
- 一次請求的生命周期
- 應用目錄結構
- 服務提供者
- 服務容器
- 門面(Facades)
- 數據庫
- 起步
- 查詢構建器
- 遷移
- 填充數據
- Eloquent ORM
- 起步
- 關聯關系
- 集合
- 訪問器&修改器
- 序列化
- 服務
- 用戶認證
- 用戶授權
- Artisan Console
- 訂閱支付實現:Laravel Cashier
- 緩存
- 集合
- 集成前端資源:Laravel Elixir
- 加密
- 錯誤&日志
- 事件
- 文件系統/云存儲
- 哈希
- 輔助函數
- 本地化
- 郵件
- 包開發
- 分頁
- Redis
- 隊列
- Session
- Envoy Task Runner
- 任務調度
- 測試
- 驗證
- 新手入門指南
- 簡單任務管理系統
- 帶用戶功能的任務管理系統