Comment déboguer votre code
From Joomla! Documentation
La méthode facile (echo)
Le moyen le plus simple de voir ce qui se passe dans votre code consiste à ajouter temporairement des instructions echo pour que les variables affichent leurs valeurs à l'écran. Par exemple, supposons que vous vouliez connaître la valeur de certaines variables lorsque $i est "5". Vous pouvez utiliser un code comme ceci:
for ( $i = 0; $i < 10; $i++ ) {
if ( $i == 5 ) {
echo '$i=' . $i;
// other echo statements
}
}
Cela fonctionne pour des situations simples. Cependant, si vous envisagez de faire beaucoup développement pour Joomla!, il vaut la peine de s’efforcer d’installer et d’apprendre un environnement de développement intégré (IDE) comprenant un véritable débogueur PHP.
La méthode facile n° 2 (message Joomla)
Votre code n'affichera pas toujours de simples déclarations echo. Dans ce cas, vous pouvez essayer cette alternative, toujours simple:
JFactory::getApplication()->enqueueMessage('Some debug string(s)');
Vous pouvez choisir différents types de message qui correspondent à un regroupement avec différents styles (couleurs principalement).
Journalisation Joomla
Joomla vous permet de consigner des messages dans un fichier journal, et éventuellement de les afficher également sur la page Web (de la même manière que enqueueMessage ci-dessus) et sur la console Joomla Debug (décrite ci-dessous).
Pour consigner un message dans le fichier journal:
JLog::add('my error message', JLog::ERROR);
Pour enregistrer un message et l'afficher à l'écran:
JLog::add('my error message', JLog::ERROR, 'jerror');
La connexion au fichier journal et à la console de débogage est contrôlée via les paramètres du plug-in System - Debug. Pour comprendre comment cela fonctionne et les paramètres appropriés du plug-in System-Debug, lisez la page de documentation de Joomla sur Utiliser JLog.
Utiliser un IDE
Regardez cette vidéo de 3 minutes qui montre comment vous pouvez déboguer votre code avec un navigateur et un IDE
Many Joomla! developers use the Eclipse IDE. This is free and includes a debugger. Instructions for installing it are available at Setting up your workstation for Joomla! development, or you can watch this video on setting up Eclipse and Xdebug:
Utiliser l'éditeur PHP Expert
Une autre option est l'éditeur PHP Expert avec une extension installée pour le débogage. Ajoutez les lignes suivantes au fichier php.ini:
extension=php_dbg.dll [Debugger] debugger.enabled=on debugger.profiler_enabled=off
Il est préférable de définir profiler_enable sur "off". Ensuite, vous devez définir des options dans le menu Exécuter/Options pour utiliser le serveur HTTP et le répertoire dans lequel se trouve votre script. Si toutes les options sont correctes, vous pouvez exécuter votre script en mode débogage en cliquant sur le bouton Déboguer (F8).
J!Dump
Une extension souvent utile que vous pouvez trouver dans le JED est l'extension J! Dump qui vous permettra de d'afficher les variables, les traces de pile et les informations système dans une fenêtre contextuelle au moment de l'exécution. Cette extension fonctionne comme la commande PHP `var_dump` mais formate la sortie de manière beaucoup plus lisible.
Joomla Debug Console
La console de débogage peut être activée à partir de la Configuration Globale de Joomla!, onglet Système, en définissant l'option Système de débogage sur Oui. Une fois activé, la sortie du plugin de débogage sera affichée au bas de chaque page.
La définition de cette option de système de débogage définit également la variable globale JDEBUG sur true afin que vous puissiez contrôler si les messages doivent être consignés en testant cette variable:
if(JDEBUG)
{
//whatever debugging code you want to run, eg
JLog::add('my debug message', JLog::DEBUG, 'my-debug-category');
}
Ce plugin fournit des informations importantes pouvant vous aider à déboguer et à améliorer les performances de votre composant.
Informations de session
This section displays state variables which are stored in the Session data to enable them to be 'remembered' across HTTP requests. Examples include variables defining the current search filters the user has defined, the pagination point in a list of records, etc.
Informations de profil
The Profile Information tab from the debug plugin provides information about the time and memory taken to render the page based on each of the application events. This can help to identify areas outside of network speed that are contributing to long page load times high server memory usage.
Database Queries
One of the most useful tabs is the Database Queries tab. This will provide a log of all queries that have been executed while loading the page and identify both the time taken to execute the query and whether duplicate queries have occurred. This is particularly useful when debugging performance problems on larger components as duplicate queries are often a contributing factor.