根据控制器禁用 debug_kit

Disable debug_kit depending on controller

我是 运行 CakePHP 4.1.4 以及我在互联网上找到的东西,所以它不起作用,因为有些答案已有 9 年历史。我在 config/app.php

中试过了
    'debug' => filter_var(env('DEBUG', false), FILTER_VALIDATE_BOOLEAN),
--- or ---
    'debug' => FALSE,

AppController.php

public function initialize(): void
{
    Configure::write('debug', 0);

没有任何帮助。这个图标在左下角仍然可见:

我的问题:

我怎样才能为某些控制器完全删除它,如果不可能,那么对于整个项目。

更改控制器层中的 debug 选项为时已晚,是否加载 Debug Kit 插件的决定默认位于 Application::bootstrap() 中,位于 src/Application.php 中。 Debug Kit 本身也会检查 debug 配置选项,但是这也会发生在到达控制器层之前,它发生在中间件层。

如果您使用最新版本的 cakephp/app 应用程序模板来创建您的应用程序,那么您应该在 config/app_local.php 中设置 debug 值,该值将在之后加载config/app.php,并将 set/overwrite 一些具有环境特定值的设置。

我不认为有任何过于直接的方法来禁用每个路由的调试工具包。该插件会将中间件注入中间件堆栈的顶部,高于其他所有内容。您可以轻松获得的最接近的可能是使用 DebugKit.ignorePathsPattern option,它接受与当前请求路径匹配的 RegEx 模式。然而 并没有 真正禁用 Debug Kit,它只会隐藏它,而不保存在该请求中捕获的调试数据。此外,这仅适用于 2xx 状态代码范围内的响应。

长话短说,您可能不得不选择启用它或禁用它。