Начиная с моего обновления Symfony 2
до версии 2.7
. Я получаю много устаревших ошибок в PHPUnit
и console
(сообщение уже ясно).
ProjectX\ApiBundle\Tests\Controller\SectionsControllerTest::testPostDebug() The twig.form.resources configuration key is deprecated since version 2.6 and will be removed in 3.0. Use the twig.form_themes configuration key instead.
Есть идеи, как отключить их сейчас?
У меня такая же проблема и она была решена аналогично приведенной ниже ссылке. Symfony объявляет о всех ошибках и переопределяет то, что вы поместили в php.ini по дизайну (иначе он не смог поймать и отобразить красивые трассировки стека для вас).
Таким образом, вам необходимо переопределить встроенную отчетность об ошибках Symfony2, создав функцию init()
в вашем AppKernel.php и установив error_reporting, как вы хотели бы там , наряду с (возможно) некоторым обнаружением среды, чтобы убедиться, что вы 't отображать ошибки в производстве, например:
// Add this to app/AppKernel.php public function init() { if ($this->debug) { ini_set('display_errors', 1); error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED); } else { ini_set('display_errors', 0); } }
Подробнее здесь (используйте Google Translate, если вы не читаете по-русски 🙂 http://tokarchuk.ru/2012/12/disable-deprecated-warnings-in-symfony-2/
Унаследованная функция Kernel :: init () AppKernel обесценивается, поэтому ее изменение не является жизнеспособным долгосрочным решением.
Вы можете легко переопределить отчет об ошибках, изменив вызов на Debug :: enable (); как в app / console, так и в web / app_dev.php.
+ Изменить
Debug::enable();
в
Debug::enable(E_RECOVERABLE_ERROR & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED, false);
Это оставит все другие сообщения об ошибках в такт, подавляя обесцениваемые предупреждения. И вам вообще не нужно возиться с Ядром.
В моем случае я не мог скрыть устаревшее предупреждение, не используя переменную SYMFONY_DEPRECATIONS_HELPER
.
Измените свой phpunit.xml
на
<phpunit> <!-- ... --> <php> <env name="SYMFONY_DEPRECATIONS_HELPER" value="weak"/> </php> </phpunit>
Затем у вас будет только одно сообщение типа «Остальные предупреждения об отставке (x)», который не считается провалом теста.
Надеюсь, это поможет.
Конфигурационный ключ twig.form был удален в новой версии Twig. Поэтому вы должны заменить ключ в config.yml
///DEPRECATED : twig: form: resources: - 'path_to_template_file' // NEW WAY : twig: form_themes: - 'path_to_template_file'
Обратите внимание, что отключение предупреждений об отставке с помощью error_reporting () или Debug :: enable () не помешает им регистрироваться в dev.log . Чтобы отключить их от регистрации, вам необходимо изменить уровень журнала в вашем обработчике монолога на «предупреждение» (предупреждения об отказе записываются как «информация» в канале «php»).
В качестве альтернативы, чтобы предотвратить повреждение других журналов, вы можете создать отдельный обработчик монолога с другим уровнем для канала «php», например
monolog: handlers: main: type: stream path: %kernel.logs_dir%/%kernel.environment%.log level: debug formatter: monolog.formatter.session_request channels: '!php' php: type: stream path: %kernel.logs_dir%/%kernel.environment%.log level: warning formatter: monolog.formatter.session_request channels: 'php'