鍍金池/ 教程/ PHP/ 發(fā)行版本說明
門面
Laravel Homestead
安裝及配置
測試
HTTP 中間件
加密
升級指南
幫助函數(shù)
應(yīng)用目錄結(jié)構(gòu)
集合
新手入門指南-簡單任務(wù)管理系統(tǒng)
任務(wù)調(diào)度
查詢構(gòu)建器
視圖
驗證
Laravel Cashier(訂購&支付&發(fā)票)
本地化
隊列
調(diào)整器
分頁
文件系統(tǒng)/云存儲
貢獻代碼
哈希
HTTP 控制器
緩存
遷移
HTTP 請求
Laravel Elixir
發(fā)行版本說明
Envoy 任務(wù)運行器(SSH任務(wù))
序列化
Session
起步
帶用戶功能的任務(wù)管理系統(tǒng)
起步
用戶授權(quán)
郵件
事件
填充數(shù)據(jù)
HTTP 路由
服務(wù)提供者
Blade 模板引擎
包開發(fā)
用戶認證
Artisan 控制臺
HTTP 響應(yīng)
集合
服務(wù)容器
關(guān)聯(lián)關(guān)系
一次請求的生命周期
契約
Redis
錯誤&日志

發(fā)行版本說明

支持政策

LTS 版本,比如 Laravel,將會提供兩年的 bug 修復(fù)和三年的安全修復(fù)支持。這些版本將會提供最長時間的支持和維護。

對于其他通用版本,只提供六個月的 bug 修復(fù)和一年的安全修復(fù)支持。

Laravel 5.1.11

Laravel 5.1.11 引入了“開箱即用”的授權(quán)支持!使用簡單的回調(diào)或策略類即可方便地管理應(yīng)用的授權(quán)邏輯,并且授權(quán)動作使用簡單且優(yōu)雅的方法。 想要了解更多信息,請查看授權(quán)文檔。

Laravel 5.1.4

Laravel 5.1.4 將登錄次數(shù)限制引入框架,更多詳情請參考認證限制一節(jié)。

Laravel 5.1

Laravel 5.1 在 5.0 的基礎(chǔ)上繼續(xù)進行優(yōu)化和提升,接受 PSR-2 代碼風(fēng)格,新增事件廣播機制,中間件參數(shù),Artisan 優(yōu)化,等等。

PHP 5.5.9+

由于 PHP 5.4 將會在今年9月份“壽終正寢”,并且 PHP 開發(fā)組不會再提供安全更新,Laravel 5.1 要求 PHP5.5.9 或更高版本。PHP5.5.9 兼容一些最新版本的流行 PHP 庫如 Guzzle 和 AWS SDK。

LTS

Laravel 5.1 是 Laravel 第一個長期支持版本,將會提供兩年的 bug 修復(fù)和安全修復(fù),這是迄今為止,Laravel 提供的最大跨度的支持,并且將會持續(xù)為更多的企業(yè)用戶及普通用戶提供穩(wěn)定平滑的支持。

PSR-2

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é)。

中間件參數(shù)

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 優(yōu)化

Artisan 命令可以通過使用一個簡單的,類似路由風(fēng)格的“簽名”(提供了一個非常簡單的接口來定義命令行參數(shù)和選項)來定義:

/**
 * 命令行的名稱和簽名.
 *
 * @var string
 */
protected $signature = 'email:send {user} {--force}';

更多關(guān)于 Artisan 的內(nèi)容,請查看命令行一節(jié)。

目錄結(jié)構(gòu)

為了更好地表達意圖,app/Commands 目錄被重命名為 app/Jobs,此外,app/Handlers 被合并到 app/Listeners 目錄。然而這并不是破壞式改變所以使用 Laravel 5.1 并不強制要求更新到新的目錄結(jié)構(gòu)。

加密

在之前的 Laravel 版本中,加密通過 PHP 擴展 mcrypt 進行處理,從 5.1 開始,加密改由通過 PHP 的另一個擴展 openssl 進行處理,因為該擴展較前者而言維護的更加活躍。