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 !
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);
Deux tables sont très utiles dans magento,
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:
<?phpMage::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.
Magento possède une fonction fortement utile, pour l'activer direction system -> configuration -> developper ->debug et activer les deux options:
Vous verrez apparaitre l'emplacement des fichiers de templates et le nom des blocks correspondant directement sur magento en front-office.
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.
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 = Onxdebug.overload_var_dump = 1
Pensez bien sur à redémarrer apache ensuite pour la prise en compte des changements.
Sister Description
Cette page parle des avantages à faire les montés de version de Magento et des risques liés.
Notre agence est partenaire et certifiée Adobe Commerce : découvrez nos prestations !
Nous parlons ici des différences entre les versions de magento Community et Enterprise ainsi que de l'application de patch et de mise à jour