怎么在Laravel 6.2 中添加可调用容器对象

今天就跟大家聊聊有关怎么在Laravel 6.2 中添加可调用容器对象,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

首先,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 是什么

Laravel 是一套简洁、优雅的PHP Web开发框架。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。

看完上述内容,你们对怎么在Laravel 6.2 中添加可调用容器对象有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。