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/