文章轉發自專業的Laravel開發者社區,原始連接:learnku.com/laravel/t/3…php
Laravel小組上週發佈了v6.2.0 ,其中包含 針對已登陸用戶的新的密碼確認流程以及可調用的容器對象。如今,讓咱們去了解一些還沒有發佈的一些其餘新功能,在發行說明中表示已經可使用:laravel
首先,Container::call
如今支持可調用對象。下面是pull請求的測試,它演示了它的工做原理:git
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
行爲:github
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()
方法:sql
// 以前
$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的完整發行說明:數據庫
Container::call()
中添加了對可調用對象的支持` (#30156)policies()
方法代替屬性策略 (#30189)validateDimensions()
處理 image/svg
(#30204)