Magazine Ebusiness

[PrestaShop 1.7] Résolu : Cannot redeclare class ContainerAwareInterface

Publié le 30 octobre 2017 par Amerigeau @arnaudmerigeau

Corriger une erreur 500 sous PrestaShop n'est pas forcément simple et cela peut prendre plusieurs heures si on ne sait pas où chercher. Je vous livre aujourd'hui le tuto pour corriger pour une erreur 500 sous PrestaShop 1.7.

Constat

Votre boutique PrestaShop 1.7 est installé et tout tourne sans problème. Vous effectuez une modification anecdotique dans le back office et soudain, plus rien ne marche. Erreur 500 : la fameuse page blanche !

Selon la configuration, l'écran blanc affiche les erreurs mais parfois non et dans ce cas vous allez devoir les afficher pour apporter la correction.

Afficher les erreurs avec PrestaShop 1.7

Comme pour les versions précédentes de PrestaShop, vous pouvez activer le mode debug pour afficher les éventuelles erreurs ou notice ou warning.

Pour ce faire, éditez le fichier /www/config/defines.inc.php et remplacez le code suivant :

/* Debug only */ if (!defined('_PS_MODE_DEV_')) { define('_PS_MODE_DEV_', false); }

Par :

/* Debug only */ if (!defined('_PS_MODE_DEV_')) { define('_PS_MODE_DEV_', true); }

On a passé la variable _PS_MODE_DEV_ à " true " donc " vrai " activer le debug. Enregistrez et rechargez votre page web.

Vous devriez alors à l'écran la ou les erreurs affichée(s). Si ce n'est pas le cas comme dans mon cas, rapprochez-vous de votre hébergeur et demandez les erreurs dans à la date et l'heure où vous avez testé.

Voici l' erreur générée dans PrestaShop 1.7 :

Error :

[Fri Oct 27 09:12:21 2017] [warn] [client 90.112.95.90] mod_fcgid: stderr: PHP Fatal error: Cannot redeclare class Symfony\Component\DependencyInjection\ContainerAwareInterface in /www/app/cache/prod/classes.php on line 6911

Comment corriger la fatal error sous PrestaShop 1.7 ?

Une fois que vous en êtes à cette étape, c'est plutôt simple car on sait d'où provient le problème : dans le fichier : /www/app/cache/prod/classes.php on line 6911

Dans ce cas précis, il n'est pas possible de déclarer plusieurs fois la même Class dans PrestaShop donc le système plante. Sauf que là, l'erreur est située dans un fichier lui-même situé dans le dossier /cache/ : c'est un fichier de cache.

Pour corriger l'erreur PHP Fatal error: Cannot redeclare class, supprimez le fichier : /www/app/cache/prod/classes.php

Une fois le fichier classes.php supprimé, rechargez votre page web, c'est tout 🙂

Pensez également de désactiver le mode debug en passant à " false " la variable _PS_MODE_DEV_ dans le fichier /www/config/defines.inc.php

Bilan : PrestaShop 1.7 et les erreurs fatales

Corriger une erreur fatale sous PrestaShop 1.7 peut donc prendre quelques minutes quand on sait où chercher mais parfois cela peut prendre plusieurs heures si l'intervention est plus complexe. Quoiqu'il arrive, l'important est d'arriver à trouver la source du problème pour corriger soi-même ou pour donner les informations au développeur qui va intervenir.

A bientôt

Si vous n'avez pas le temps ou les compétences pour appliquer ce tuto à votre boutique PrestaShop, je peux m'en charger !

Contactez-moi

Retour à La Une de Logo Paperblog

A propos de l’auteur


Amerigeau 144 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte