php symfony symfony-2.7

php - Deshabilitar advertencia obsoleta en Symfony 2(.7)



symfony-2.7 (5)

En mi caso, no podría ocultar la advertencia obsoleta sin usar la variable de SYMFONY_DEPRECATIONS_HELPER .

Cambia tu phpunit.xml con

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

Luego, solo tendrá un mensaje como "Avisos de desaprobación restantes (x)" que no se considera como un error de prueba.

Espero que esto ayude.

Desde mi actualización de Symfony 2 a 2.7 . Recibo muchos errores desaprobados en PHPUnit y la console (el mensaje es claro por ahora).

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.

¿Alguna idea de cómo deshabilitarlos por ahora?


La clave de configuración twig.form se ha eliminado en la nueva versión de Twig. Por lo tanto, debe reemplazar la clave en su config.yml

///DEPRECATED : twig: form: resources: - ''path_to_template_file'' // NEW WAY : twig: form_themes: - ''path_to_template_file''


La función Kernel :: init () heredada de AppKernel se deprecia por sí misma, por lo que cambiarla no es una solución viable a largo plazo.

Puede anular fácilmente el informe de errores cambiando la llamada a Debug :: enable (); tanto en app / console como en web / app_dev.php así.

Cambio

Debug::enable();

a

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

Esto dejará intactos todos los demás informes de errores mientras suprime las advertencias depreciadas. Y no necesita meterse con el Kernel en absoluto.


Tenga en cuenta que deshabilitar las advertencias de desaprobación a través de error_reporting () o Debug :: enable () no evitará que se registren en dev.log . Para deshabilitar su registro, deberá cambiar el nivel de registro en su controlador de monólogo a "advertencia" (las advertencias de desactivación se registran como "información" en el canal "php").

Alternativamente, para evitar que otros registros se vean afectados, puede crear un controlador de monólogo separado con un nivel diferente para el canal "php", por ejemplo

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''


Tengo el mismo problema y lo resolví de manera similar al siguiente enlace. Symfony declara informar todos los errores y anula lo que pones en php.ini por diseño (de lo contrario, no podría capturar y mostrar buenos rastros de pila para ti).

Por lo tanto, deberá anular el informe de errores incorporado de Symfony2 creando una función init() en su AppKernel.php y configurando el error_reporting como desea allí , junto con (probablemente) alguna detección del entorno para asegurarse de que no No mostrar errores en la producción, por ejemplo:

// 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); } }

Más detalles aquí (use el Traductor de Google si no lee ruso :) http://tokarchuk.ru/2012/12/disable-deprecated-warnings-in-symfony-2/