Disable deprecated warning in Symfony 2(.7) Disable deprecated warning in Symfony 2(.7) symfony symfony

Disable deprecated warning in Symfony 2(.7)


AppKernel's inherited Kernel::init() function is depreciated itself so changing it is not a viable long term solution.

You can easily override the error reporting by changing the call to Debug::enable(); in both app/console and web/app_dev.php like so.

Change

Debug::enable();

to

Debug::enable(E_RECOVERABLE_ERROR & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED, false);

This will leave all other error reporting in tact while suppressing depreciated warnings. And you don't need to mess with the Kernel at all.


In my case, i couldn't hide deprecated warning without using SYMFONY_DEPRECATIONS_HELPERenvironnment variable.

Change your phpunit.xml with

<phpunit>    <!-- ... -->    <php>        <env name="SYMFONY_DEPRECATIONS_HELPER" value="weak"/>    </php></phpunit>

Then, you'll just have one message like "Remaining deprecation notices (x)" which is not considered as a test failure.

Hope this will help.


I have the same problem and solved it similar to the below link. Symfony declares to report all errors and overrides what you put in php.ini by design (otherwise it couldn't catch & display nice stack traces for you).

So, you'll need to override Symfony2's built-in error reporting by creating an init() function in your AppKernel.php and setting the error_reporting how you'd like there, along with (probably) some environment detection to make sure you don't display errors in production, for example:

// Add this to app/AppKernel.phppublic 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);    }}

More details here (use Google Translate if you do not read Russian :) http://tokarchuk.ru/2012/12/disable-deprecated-warnings-in-symfony-2/