Bug Magento, trucs et astuces

En parallèle de la création des tutoriels sur la création d’un module, il me paraissait important de vous donner quelques pistes pouvant permettre un débugage en règle dans Magento. Voici donc un petit hors-série en cas de panne, de bug façon x-files et autre pour vous permettre d’avancer !

Le déblocage des logs dans l’index

Vous trouverez dans votre index.php vers la ligne 66 un bloc de code à retoucher ainsi, à priori pas très nécessaire que je vous détaille beaucoup les fonctions, vous ne vous seriez pas lancé dans magento sinon. “Bref j’ai affiché les erreurs” pour ne pas plagier une célèbre série. En gros 2 méthodes, la première violente comme si dessous impliquant une activation systématique, ou la seconde plus propre et permettant de ne pas pourrir son serveur de prod quand on a fini de développer sur sa VM, d’initialiser la variable MAGE_IS_DEVELOPER_MODE au niveau Apache.

 //if (isset($_SERVER['MAGE_IS_DEVELOPER_MODE'])) {
Mage::setIsDeveloperMode(true);
//}

ini_set('display_errors', 1);

Plonger dans la base de données

Deux tables sont très utiles dans magento,

  • core_ressource : qui recense les versions des modules installés avec une modification de base de données. Elle stock en son seins la version actuelle du module. Cela peux vous permettre via une modification de la valeur de réexécuter l’installation ou la mise à jour du module jusqu’à une version bien précise.
  • core_config_data : qui stocke la valeur des options placées dans le back/office.

Faire des echo discrets

Quel développeur n’a pas déjà mis des echo “toto”; ou des die(“plop”); dans son code pour mieux le dépanner? Les joies du MVC vous imposeront ici de maîtriser un nouvel outil, en effet tous les echo n’apparaîtront pas dans le code, en conséquence, vérifier dans votre back-office (BO) que l’option: System -> Configuration -> advanced ->developper->log settings est bien à Yes. Vous pourrez ainsi utiliser les capacités des deux lignes de code suivantes:

 <?php
Mage::log($array,null,'fichier.txt');
Mage::log($toto,null,'fichier.txt');

La première étant là pour afficher un tableau, et la seconde une variable ou chaîne de texte. J’ai volontairement distingué les deux cas, car il s’avère que les deux dans la même fonction ne passent pas, alors que la première ligne vous renverra l’équivalent d’un print_r.

L’affichage des blocks/template

Magento possède une fonction fortement utile, pour l’activer direction system -> configuration -> developper ->debug et activer les deux options:

  • Template Path Hints
  • Add Block Names To Hints

Vous verrez apparaitre l’emplacement des fichiers de templates et le nom des blocks correspondant directement sur magento en front-office.

Purger les caches

Ce n’est pas une technique de debug à proprement parler mais une bonne purge des caches soit via le back Office soit en dur, purge de la base de donnée, redémarrage memcached etc, permet souvent de débloquer une situation.

L’utilisation de XDebug

Certains vous dirons de l’installer avec pear ou pecl, pour ma part ce fut via aptitude. Je parle bien entendu d’une installation sous linux, au risque de paraître sectaire, mais développer sous windows ne s’est jamais révélé très pratique en ce qui me concerne pour une interface xAMP

aptitude install php5-xdebug
/etc/init.d/apache2 restart

Pensez à vérifier dans le fichier /etc/php5/apache2/php.ini que les valeurs suivantes sont bien présente avec ces valeurs, ce me parait être le strict minimum

html_errors = On
xdebug.overload_var_dump = 1

Pensez bien sur à redémarrer apache ensuite pour la prise en compte des changements.

Christophe Vidal vous répond
Christophe Vidal vous répondAssocié et directeur commercial – sous 48h ouvrées
+300 clients depuis 2017

Votre pré-audit Magento offert

Technique, performance, SEO, Paid : un expert analyse votre site et vous rappelle avec des propositions concrètes.

Gratuit et sans engagement

+234%de CA en 2 ans
+45%de ventes
6langues

Migration Magento 2 pour les marques du Groupe Blanchon, PIM et ERP synchronisés, catalogue servi en 6 langues. Refonte technique, reprise du SEO et accompagnement continu : le site absorbe la saisonnalité sans incident.

62pays
4langues
57partenaires dans le monde

Le projet de refonte de notre site web nécessitait l’accompagnement d’un expert du développement Magento, de l’UX design et de référencement. Nous avons trouvé ces trois caractéristiques.

Annabelle Meli — Responsable marketing digital chez Enlaps.io
102 000pages vues dans les 48h après l’ouverture
31matchs différents

Pour la billetterie de la Coupe du Monde de Rugby 2023, nous avons conçu une plateforme Magento sur-mesure capable de gérer des flux de dizaines de milliers d'utilisateurs en simultané. Nous avons transformé des défis techniques complexes en une solution agile et performante, optimisée dès sa conception par notre expertise SEO.

410-gone, je vous recommanderai sans hésiter pour la proximité, la réactivité, l’enthousiasme et le côté humain sur chaque projet.

Lucas Chevalier — Responsable Digital chez Couleur
502 M€Chiffre d’affaires consolidé
8sites Magento en production
+900salariés

410-Gone, c’est une équipe compétente, qui sait s’adapter aux besoins spécifiques de ses clients et qui apporte des solutions efficaces, notamment en SEO et sur Magento. Leur support nous a permis d’évoluer et d’optimiser nos sites au fil du temps.

Jérémy Diguet-Dickson — Responsable Digital – Thermador Groupe
1 / 4