【问题标题】:CakePHP 3.6 dispatcher deprecated不推荐使用 CakePHP 3.6 调度程序
【发布时间】:2018-12-05 00:47:21
【问题描述】:

当我尝试使用请求运行测试时,我在 cakePHP 3.6 上出现错误。我尝试使用本教程http stack to an existing application,但我已经更新了所有内容。我没有更新 cakePHP。我从 3.6 开始。此错误在 cakephp 核心中。有人知道如何解决吗?我什至不知道我应该在哪里搜索错误

Dispatcher 已弃用。您应该更新您的应用程序以使用 Http\Server 实现。 - 供应商/cakephp/cakephp/src/TestSuite/LegacyRequestDispatcher.php, line: 73 您可以通过设置禁用弃用警告 Error.errorLevelE_ALL & ~E_USER_DEPRECATED 在您的 配置/app.php。在[供应商/cakephp/cakephp/src/Core/functions.php, 第 310 行]

【问题讨论】:

标签: cakephp


【解决方案1】:

检查您是否在测试用例的 setUp() 方法中调用了 parent::setUp()。否则IntegrationTestCase 将不会使用MiddleWareDispatcher 并将退回到已弃用的LegacyRequestDispatcher

(查看IntegrationTestCase::_makeDispatcher()IntegrationTestCase::setUp() 了解IntegrationTestCase 如何确定要使用的调度程序类的详细信息。)

【讨论】:

  • 在我的 setUp() 中我只有 $accessToken = $this->post('/api/user/token', $data);这就是我写的所有内容,因为我收到了这个错误。它从 IntegrationTestCase 扩展而来,这是框架的默认设置,当我调试它时,我的测试转到该路径并执行 return $dispatcher->dispatch($request, $response);但它在供应商中
  • 你去...只需添加 parent::setUp(); 作为 setUp() 方法的第一条语句并尝试一下。
猜你喜欢
  • 2021-07-31
  • 1970-01-01
  • 2012-09-20
  • 2010-10-14
  • 2013-08-29
  • 2020-04-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多