Laravel 6.2 中添加了可調用容器對象

文章轉發自專業的Laravel開發者社區,原始連接: https://learnku.com/laravel/t...

Laravel小組上週發佈了v6.2.0 ,其中包含 針對已登陸用戶的新的密碼確認流程以及可調用的容器對象。如今,讓咱們去了解一些還沒有發佈的一些其餘新功能,在發行說明中表示已經可使用:php

首先,Container::call 如今支持可調用對象。下面是pull請求的測試,它演示了它的工做原理:laravel

class ContainerCallCallableStub
{
    public function __invoke(ContainerCallConcreteStub $stub, $default = 'jeffrey')
    {
        return func_get_args();
    }
}

$container = new Container;
$callable = new ContainerCallCallableStub;
$result = $container->call($callable);
$this->assertInstanceOf(ContainerCallConcreteStub::class, $result[0]);
$this->assertSame('jeffrey', $result[1]);

接下來,框架身份驗證中間件添加了一個 unauthenticated 的方法。每一個 Laravel 項目都有一個擴展框架中間件的 Authenticate 中間件類,使您可以覆蓋unauthenticated 行爲:git

class Authenticate extends Middleware
{
    /**
     * 獲取用戶未經過身份驗證時應重定向到的路徑。
     *
     * @param  \Illuminate\Http\Request  $request
     * @return string
     */
    protected function redirectTo($request)
    {
        if (! $request->expectsJson()) {
            return route('login');
        }
    }

    protected function unauthenticated($request, array $guards)
    {
        // 自定義未經驗證的邏輯
    }
}

接下來, 在測試套件中添加了一個新的便捷的 partialMock() 方法:github

// 以前
$this->instance(Abstract::class, Mockery::mock(Abstract::class, function ($mock) {
    $mock->shouldReceive('call')->once();
})->makePartial());

// 以後
$this->partialMock(Abstract::class, function ($mock) {
    $mock->shouldReceive('call')->once();
});

您能夠在下面查看新功能和更新的完整列表,以及github上 6.1.0 and 6.2.0 之間的所有區別。固然你也能夠在 GitHub v6 changelog上查看Laravel 6.0的完整發行說明:sql

v6.2.0

新增

  • Container::call() 中添加了對可調用對象的支持` (#30156)
  • 爲 postgreSQL 添加 multipolygonz 類型 (#30173)
  • 在 auth 中間件中添加 "unauthenticated" 方法 (#30177)
  • 添加 partialMock 速記 (#30202)
  • 容許 Storage::put 接受 PSR 流接口 (#30179)
  • 實現新的密碼規則和密碼確認 (#30214)

更新

  • 刪除了傳遞給updatePackageArray方法的沒必要要參數 (#30155)
  • DatabaseUserProvider添加了可選的鏈接名稱 (#30154)
  • 刪除了 php artisan serve URL周圍的括號 (#30168)
  • 將限制應用從集合移到了數據庫 (#30148)
  • 容許在嵌套查詢中使用做用域 (#30127)
  • 添加數組到sqlite的json轉換 (#30133)
  • 使用policies()方法代替屬性策略 (#30189)
  • 拆分hasValidSignature方法 (#30208)

既定

  • validateDimensions() 處理 image/svg  (#30204)
相關文章
相關標籤/搜索