LTS 版本,比如 Laravel,將會提供兩年的 bug 修復(fù)和三年的安全修復(fù)支持。這些版本將會提供最長時間的支持和維護。
對于其他通用版本,只提供六個月的 bug 修復(fù)和一年的安全修復(fù)支持。
Laravel 5.1.11 引入了“開箱即用”的授權(quán)支持!使用簡單的回調(diào)或策略類即可方便地管理應(yīng)用的授權(quán)邏輯,并且授權(quán)動作使用簡單且優(yōu)雅的方法。 想要了解更多信息,請查看授權(quán)文檔。
Laravel 5.1.4 將登錄次數(shù)限制引入框架,更多詳情請參考認證限制一節(jié)。
Laravel 5.1 在 5.0 的基礎(chǔ)上繼續(xù)進行優(yōu)化和提升,接受 PSR-2 代碼風(fēng)格,新增事件廣播機制,中間件參數(shù),Artisan 優(yōu)化,等等。
由于 PHP 5.4 將會在今年9月份“壽終正寢”,并且 PHP 開發(fā)組不會再提供安全更新,Laravel 5.1 要求 PHP5.5.9 或更高版本。PHP5.5.9 兼容一些最新版本的流行 PHP 庫如 Guzzle 和 AWS SDK。
Laravel 5.1 是 Laravel 第一個長期支持版本,將會提供兩年的 bug 修復(fù)和安全修復(fù),這是迄今為止,Laravel 提供的最大跨度的支持,并且將會持續(xù)為更多的企業(yè)用戶及普通用戶提供穩(wěn)定平滑的支持。
PSR-2 代碼風(fēng)格指南已經(jīng)被 Laravel 框架采取為默認風(fēng)格指南,此外,所有代碼生成器已經(jīng)被更新到生成兼容 PSR-2 語法的代碼。
Laravel 文檔的每一個頁面都進行了一絲不茍的審查和引人注目的優(yōu)化,所有代碼示例都被審查并且擴展到更好的支持上下文相關(guān)性。
在很多現(xiàn)代的 web 應(yīng)用中,web 套接字被用于實現(xiàn)實時的,即時更新的用戶接口,當(dāng)服務(wù)器上的某些數(shù)據(jù)更新后,通常一條消息將會通過 websocket 連接發(fā)送到客戶端并進行處理。
為了幫助你構(gòu)建這樣類型的應(yīng)用,Laravel 使得通過 websocket 連接廣播事件變得簡單可行。廣播 Laravel 事件允許你在服務(wù)端代碼和客戶端 JavaScript 框架之間共享相同的事件名稱。
更多關(guān)于事件廣播的內(nèi)容請查看事件一節(jié)。
Laravel 5.1 里,中間件可以接受額外的自定義參數(shù),例如,如果你的應(yīng)用需要在執(zhí)行給定的 action 之前驗證被授予指定“角色”的認證用戶,可以創(chuàng)建一個 RoleMiddleware 來接收角色名稱作為額外參數(shù):
<?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)) {
// 跳轉(zhuǎn)...
}
return $next($request);
}
}
中間件參數(shù)可以再定義路由時通過:分隔中間件名稱和參數(shù)名稱來指定,多個參數(shù)可以通過逗號進行分隔:
Route::put('post/{id}', ['middleware' => 'role:editor', function ($id) {
//
}]);
更多關(guān)于中間件的內(nèi)容,請查看中間件一節(jié)。
Laravel 中內(nèi)置的測試功能獲得了引入注目的提升,多個新方法提供了平滑的,富有變現(xiàn)力的接口和應(yīng)用進行交互并測試響應(yīng):
public function testNewUserRegistration(){
$this->visit('/register')
->type('Taylor', 'name')
->check('terms')
->press('Register')
->seePageIs('/dashboard');
}
更多有關(guān)測試的內(nèi)容,請查看測試一節(jié)。
Laravel 現(xiàn)在可以通過使用模型工廠附帶一種簡單的方式類創(chuàng)建 Eloquent 模型存根,模型工廠允許你為 Eloquent 模型定義一系列默認屬性,然后為測試或數(shù)據(jù)庫填充生成模型實例。模型工廠還可以利用強大的 PHP 擴展庫 Faker 類生成隨機的屬性數(shù)據(jù)。
$factory->define('App\User', function ($faker) {
return [
'name' => $faker->name,
'email' => $faker->email,
'password' => str_random(10),
'remember_token' => str_random(10),
];
});
更多關(guān)于模型工廠的內(nèi)容,請查看模型工廠一節(jié)。
Artisan 命令可以通過使用一個簡單的,類似路由風(fēng)格的“簽名”(提供了一個非常簡單的接口來定義命令行參數(shù)和選項)來定義:
/**
* 命令行的名稱和簽名.
*
* @var string
*/
protected $signature = 'email:send {user} {--force}';
更多關(guān)于 Artisan 的內(nèi)容,請查看命令行一節(jié)。
為了更好地表達意圖,app/Commands
目錄被重命名為 app/Jobs
,此外,app/Handlers
被合并到 app/Listeners
目錄。然而這并不是破壞式改變所以使用 Laravel 5.1 并不強制要求更新到新的目錄結(jié)構(gòu)。
在之前的 Laravel 版本中,加密通過 PHP 擴展 mcrypt 進行處理,從 5.1 開始,加密改由通過 PHP 的另一個擴展 openssl 進行處理,因為該擴展較前者而言維護的更加活躍。