美文网首页
Laravel 6.2 中添加了可调用容器对象

Laravel 6.2 中添加了可调用容器对象

作者: summerbluet | 来源:发表于2019-10-22 10:26 被阅读0次
    image

    文章转发自专业的Laravel开发者社区,原始链接:https://learnku.com/laravel/t/35306

    Laravel小组上周发布了v6.2.0 ,其中包含 针对已登录用户的新的密码确认流程以及可调用的容器对象。现在,让我们去了解一些尚未发布的一些其他新功能,在发行说明中表示已经可以使用:

    首先,Container::call 现在支持可调用对象。下面是pull请求的测试,它演示了它的工作原理:

    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 行为:

    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() 方法:

    // 之前
    $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的完整发行说明:

    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)

    相关文章

      网友评论

          本文标题:Laravel 6.2 中添加了可调用容器对象

          本文链接:https://www.haomeiwen.com/subject/emofvctx.html