Отключить устаревшее предупреждение в Symfony 2 (.7)

Начиная с моего обновления 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. 

Есть идеи, как отключить их сейчас?

Related of "Отключить устаревшее предупреждение в Symfony 2 (.7)"

У меня такая же проблема и она была решена аналогично приведенной ниже ссылке. 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'