Symfony 4:如何通过命令行在 test-env 中禁用探查器

Symfony 4: How to disable profiler in test-env through command line

我已经尝试了很长一段时间来禁用测试环境中的探查器。它工作的唯一方法是在文件 .env 中手动设置 APP_ENV=test 但我想通过命令行而不是通过编辑文件来执行此操作。

这是我尝试过的一切:

Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true],

Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => false, 'test_cached' => false],

我分别尝试了这些解决方案,也尝试了所有这些解决方案,分析器仍然不断弹出。有人有想法吗?

编辑: 在应用了 Alister Bulman 的回答后,命令给出了这个:

#php bin/console -e test debug:config framework profiler

Current configuration for "framework.profiler"
==============================================

enabled: true
collect: false
only_exceptions: false
only_master_requests: false
dsn: 'file:%kernel.cache_dir%/profiler'

编辑 2: 感谢 Jared Farrish 我刚刚发现浏览器正在以 "dev" 模式接收网站,尽管服务器是在 cli 上的测试环境中启动的。显然编辑 bin/consolepublic/index.php 是不够的,当服务器收到来自浏览器的请求时,它们不会被调用。

编辑 3: 所以我发现 http 请求首先到达 public/index.php,但无论我做什么,我似乎都无法在那里提供任何在 bin/console 中定义的内容,尽管整个服务器首先在那里启动。有人知道如何做到这一点吗?

可以在框架配置中启用或禁用配置文件。

> bin/console -e dev debug:config framework profiler

Current configuration for "framework.profiler"
==============================================
only_exceptions: false
enabled: true
collect: true
only_master_requests: false
dsn: 'file:%kernel.cache_dir%/profiler'

在新生成的项目中,这些最好在config/packages/test/framework.yaml文件中设置(用于测试环境)。

framework:
    profiler: 
        enabled: false
        collect: false
        # optionally others

框架配置(探查器等)的文档位于 https://symfony.com/doc/current/reference/configuration/framework.html#profiler

我自己找的。我所做的是使用 php.ini 的功能,称为 "auto_prepend_file",您可以在其中指定一个 PHP 文件,该文件在执行实际 PHP 内容之前自动执行。所以在那里我放了一个包含以下内容的文件的路径:

<?php

$_ENV['APP_ENV'] = 'test';
$_ENV['APP_DEBUG'] = 0;