Supprimer les notices du mode debug de PrestaShop

Le mode debug de PrestaShop 1.7 fonctionne trop bien. Par défaut il s’arrête sur toutes les erreurs, avertissement ou notice, ce qui fait que quand un problème, même minime, se trouve en amont de ce que vous voulez corriger, le système s’arrête avant la partie qui vous intéresse.

Par exemple avec PHP 7.4, Doctrine utilisé par PrestaShop affiche un Warning : https://github.com/doctrine/DoctrineORMModule/issues/579 ce qui empêche tout débogage.

Pour corriger tout cela, il faut dire à Symfony quelles erreurs afficher :

On a 2 fichiers à modifier « classes/controller/FrontController.php » et « admin/index.php » dans les deux cas il faut remplacer

Debug::enable();Langage du code : CSS (css)

par

Debug::enable(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED & ~E_WARNING);Langage du code : PHP (php)

en adaptant le paramètre à ce qu’on veut. La documentation est ici : https://www.php.net/error_reporting

Il peut être utile de modifier aussi « config/defines.inc.php » en remplaçant

@error_reporting(E_ALL | E_STRICT);Langage du code : PHP (php)

par

@error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED & ~E_WARNING);Langage du code : PHP (php)