# 序言 —— 發行版本說明
## 支持政策
LTS,將會提供兩年的bug修復和三年的安全修復支持。這些版本將會提供最長時間的支持和維護。
對于其他通用版本,只提供六個月的bug修復和一年的安全修復支持。
## Laravel 5.1.11
Laravel 5.1.11 引入了“開箱即用”的[授權](http://laravelacademy.org/post/577.html)支持!使用簡單的回調或策略類即可方便地管理應用的授權邏輯,并且授權動作使用簡單且優雅的方法。
想要了解更多信息,請查看[授權文檔](http://laravelacademy.org/post/577.html)。
## Laravel 5.1.4
Laravel 5.1.4 將登錄次數限制引入框架,更多詳情請參考[認證限制](http://laravelacademy.org/post/163.html#ipt_kb_toc_163_8)一節。
## Laravel 5.1
Laravel 5.1 在 5.0 的基礎上繼續進行優化和提升,接受PSR-2代碼風格,新增事件廣播機制,中間件參數,Artisan優化,等等。
### PHP 5.5.9+
由于PHP 5.4將會在今年9月份“壽終正寢”,并且PHP開發組不會再提供安全更新,Laravel 5.1 要求PHP5.5.9或更高版本。PHP5.5.9兼容一些最新版本的流行PHP庫如Guzzle和AWS SDK。
### LTS
Laravel 5.1 是Laravel 第一個長期支持版本,將會提供兩年的bug修復和安全修復,這是迄今為止,Laravel提供的最大跨度的支持,并且將會持續為更多的企業用戶及普通用戶提供穩定平滑的支持。
### PSR-2
[PSR-2代碼風格指南](https://github.com/PizzaLiu/PHP-FIG/blob/master/PSR-2-coding-style-guide-cn.md)已經被Laravel框架采取為默認風格指南,此外,所有代碼生成器已經被更新到生成兼容PSR-2語法的代碼。
### 文檔
Laravel文檔的每一個頁面都進行了一絲不茍的審查和引人注目的優化,所有代碼示例都被審查并且擴展到更好的支持上下文相關性。
### 事件廣播
在很多現代的web應用中,web套接字被用于實現實時的,即時更新的用戶接口,當服務器上的某些數據更新后,通常一條消息將會通過websocket連接發送到客戶端并進行處理。
為了幫助你構建這樣類型的應用,Laravel使得通過websocket連接廣播事件變得簡單可行。廣播Laravel事件允許你在服務端代碼和客戶端JavaScript框架之間共享相同的事件名稱。
更多關于事件廣播的內容請查看[事件](http://laravelacademy.org/post/198.html)一節。
### 中間件參數
Laravel 5.1里,中間件可以接受額外的自定義參數,例如,如果你的應用需要在執行給定的action之前驗證被授予指定“角色”的認證用戶,可以創建一個RoleMiddleware來接收角色名稱作為額外參數:
~~~
<?php
namespace App\Http\Middleware;
use Closure;
class RoleMiddleware
{
/**
* 運行請求過濾器.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string $role
* @return mixed
*/
public function handle($request, Closure $next, $role)
{
if (! $request->user()->hasRole($role)) {
// 跳轉...
}
return $next($request);
}
}
~~~
中間件參數可以再定義路由時通過:分隔中間件名稱和參數名稱來指定,多個參數可以通過逗號進行分隔:
~~~
Route::put('post/{id}', ['middleware' => 'role:editor', function ($id) {
//
}]);
~~~
更多關于中間件的內容,請查看[中間件](http://laravelacademy.org/post/57.html)一節。
### 測試革新
Laravel中內置的測試功能獲得了引入注目的提升,多個新方法提供了平滑的,富有變現力的接口和應用進行交互并測試響應:
~~~
public function testNewUserRegistration(){
$this->visit('/register')
->type('Taylor', 'name')
->check('terms')
->press('Register')
->seePageIs('/dashboard');
}
~~~
更多有關測試的內容,請查看[測試](http://laravelacademy.org/post/238.html)一節。
### 模型工廠
Laravel現在可以通過使用模型工廠附帶一種簡單的方式類創建Eloquent模型存根,模型工廠允許你為Eloquent模型定義一系列默認屬性,然后為測試或數據庫填充生成模型實例。模型工廠還可以利用強大的PHP擴展庫[Faker](https://github.com/fzaninotto/Faker)類生成隨機的屬性數據。
~~~
$factory->define('App\User', function ($faker) {
return [
'name' => $faker->name,
'email' => $faker->email,
'password' => str_random(10),
'remember_token' => str_random(10),
];
});
~~~
更多關于模型工廠的內容,請查看[模型工廠](http://laravelacademy.org/post/238.html#model-factories)一節。
### Artisan優化
Artisan命令可以通過使用一個簡單的,類似路由風格的“簽名”(提供了一個非常簡單的接口來定義命令行參數和選項)來定義:
~~~
/**
* 命令行的名稱和簽名.
*
* @var string
*/
protected $signature = 'email:send {user} {--force}';
~~~
更多關于Artisan的內容,請查看[命令行](http://laravelacademy.org/post/170.html)一節。
### 目錄結構
為了更好地表達意圖,`app/Commands`目錄被重命名為`app/Jobs`,此外,`app/Handlers`被合并到`app/Listeners`目錄。然而這并不是破壞式改變所以使用Laravel 5.1并不強制要求更新到新的目錄結構。
### 加密
在之前的Laravel版本中,加密通過PHP擴展mcrypt進行處理,從5.1開始,加密改由通過PHP的另一個擴展openssl進行處理,因為該擴展較前者而言維護的更加活躍。
- 前言
- 序言
- 序言 ―― 發行版本說明
- 序言 ―― 升級指南
- 序言 ―― 貢獻代碼
- 開始
- 開始 ―― 安裝及配置
- 開始 ―― Laravel Homestead
- 基礎
- 基礎 ―― HTTP路由
- 基礎 ―― HTTP 中間件
- 基礎 ―― HTTP 控制器
- 基礎 ―― HTTP 請求
- 基礎 ―― HTTP 響應
- 基礎 ―― 視圖
- 基礎 ―― Blade模板
- 架構
- 架構 ―― 一次請求的生命周期
- 架構 ―― 應用目錄結構
- 架構 ―― 服務提供者
- 架構 ―― 服務容器
- 架構 ―― 契約
- 架構 ―― 門面
- 數據庫
- 數據庫 ―― 起步
- 數據庫 ―― 查詢構建器
- 數據庫 ―― 遷移
- 數據庫 ―― 填充數據
- Eloquent ORM
- Eloquent ORM ―― 起步
- Eloquent ORM ―― 關聯關系
- Eloquent ORM ―― 集合
- Eloquent ORM ―― 調整器
- Eloquent ORM ―― 序列化
- 服務
- 服務 ―― 用戶認證
- 服務 ―― Artisan 控制臺
- 服務 ―― Laravel Cashier(交易)
- 服務 ―― 緩存
- 服務 ―― 集合
- 服務 ―― Laravel Elixir
- 服務 ―― 加密
- 服務 ―― 錯誤&日志
- 服務 ―― 事件
- 服務 ―― 文件系統/云存儲
- 服務 ―― 哈希
- 服務 ―― 幫助函數
- 服務 ―― 本地化
- 服務 ―― 郵件
- 服務 ―― 包開發
- 服務 ―― 分頁
- 服務 ―― 隊列
- 服務 ―― Redis
- 服務 ―― Session
- 服務 ―― Envoy 任務運行器(SSH任務)
- 服務 ―― 任務調度
- 服務 ―― 測試
- 服務 ―― 驗證