文章转发自专业的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
Container::call()
中添加了对可调用对象的支持` (#30156)policies()
方法代替属性策略 (#30189)validateDimensions()
处理 image/svg
(#30204)