Depuis ma Symfony 2
Mise à jour vers 2.7
. J'obtiens beaucoup d'erreurs obsolètes dans PHPUnit
et console
(le message est clair maintenant).
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.
Une idée comment les désactiver pour l'instant?
J'ai le même problème et je l'ai résolu de la même manière que le lien ci-dessous. Symfony déclare signaler toutes les erreurs et remplace ce que vous avez mis dans php.ini par conception (sinon il ne pourrait pas attraper et afficher de belles traces de pile pour vous).
Donc, vous devrez remplacer le rapport d'erreur intégré de Symfony2 en créant une fonction init()
dans votre AppKernel.php et en définissant error_reporting comme vous le souhaitez , avec (probablement) une détection d'environnement pour vous assurer que vous n'affichez pas les erreurs de production, par exemple:
// 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);
}
}
Plus de détails ici (utilisez Google Translate si vous ne lisez pas le russe :) http://tokarchuk.ru/2012/12/disable-deprecated-warnings-in-symfony-2/
La fonction héritée Kernel :: init () d'AppKernel est elle-même dépréciée, donc la changer n'est pas une solution viable à long terme.
Vous pouvez facilement remplacer le rapport d'erreur en modifiant l'appel à Debug :: enable (); dans les deux app/console et web/app_dev.php comme ça.
Changement
Debug::enable();
à
Debug::enable(E_RECOVERABLE_ERROR & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED, false);
Cela laissera tous les autres rapports d'erreur intacts tout en supprimant les avertissements dépréciés. Et vous n'avez pas du tout besoin de jouer avec le noyau.
Dans mon cas, je ne pouvais pas masquer l'avertissement obsolète sans utiliser SYMFONY_DEPRECATIONS_HELPER
variable d'environnement.
Change ton phpunit.xml
avec
<phpunit>
<!-- ... -->
<php>
<env name="SYMFONY_DEPRECATIONS_HELPER" value="weak"/>
</php>
</phpunit>
Ensuite, vous n'aurez qu'un seul message comme "Avis de dépréciation restants (x)" qui n'est pas considéré comme un échec du test.
J'espère que cela vous aidera.
Notez que la désactivation des avertissements de dépréciation via error_reporting () ou Debug :: enable () ne les empêchera pas d'être enregistrés dans dev.log. Pour les empêcher d'être enregistrés, vous devrez changer le niveau de journalisation dans votre gestionnaire de monologues en "avertissement" (les avertissements de dépréciation sont enregistrés comme "info" dans le canal "php").
Alternativement, pour éviter que d'autres journaux ne soient affectés, vous pouvez créer un gestionnaire monolog séparé avec un niveau différent pour le canal "php" par exemple.
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'
La clé de configuration twig.form a été supprimée dans la nouvelle version de Twig. Par conséquent, vous devez remplacer la clé dans votre config.yml
///DEPRECATED :
twig:
form:
resources:
- 'path_to_template_file'
// NEW WAY :
twig:
form_themes:
- 'path_to_template_file'