Я довольно давно пытаюсь отключить профилировщик в тестовой среде. Единственный способ, которым это работает, - вручную установить APP_ENV=test
в файле .env
, но я хочу сделать это через командную строку, а не путем редактирования файла.
Вот все, что я пробовал:
Я попытался отредактировать bin/console
, как описано в ответе Криса Брауна в этой теме: Загрузить другой файл .env с помощью команды Symfony 4 (я также добавил файл .env.test
и, соответственно,для xdebug он загружает соответствующий файл и запускает соответствующий код, а также переменные $env
и $debug
получают соответствующее значение, когда я запускаю сервер с --env=test --no-debug
)
Я попытался установить profiler: enabled: false
, как описано в ответе гриппа в этой теме: Как отключить профилировщик в Symfony2 в рабочей среде? (в config / packages / test / framework.yaml)
Я попытался установить строку профилировщика в bundles.php на
Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true],
и
Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => false, 'test_cached' => false],
Я пробовал эти решения по отдельности, а также все вместе, до сих пор профилировщик кеEPS выскакивает. У кого-нибудь есть идея?
РЕДАКТИРОВАТЬ: После применения ответа Алистер Булман команда дает мне это:
#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: СпасибоДжареду Фарришу я только что узнал, что браузер получает сайт в режиме "dev", хотя сервер запускается в тестовой среде на cli. Очевидно, что редактирования bin/console
и public/index.php
недостаточно, они не вызываются, когда сервер получает запрос от браузера.
РЕДАКТИРОВАТЬ 3: Итак, я обнаружил, что http-запрос сначала идет к public/index.php
, но что бы я ни делал, я не могу сделать что-то доступное там, что было определено в bin/console
, хотявесь сервер запускается там в первую очередь. У кого-нибудь есть идеи, как это можно сделать?