
Plugin Debug (8)
Le plugin AllEvents - Debug est repris dans le package Premium
(plus d'info). Ce plugin est destiné aux programmeurs désirants mieux comprendre le fonctionnement de AllEvents et qui voudraient développer leurs propres fonctionnalités. Le plugin va permettre, entre autre, d'afficher un très grand nombre d'informations facilitant le debogage dans la console javascript du navigateur. Le plugin va aussi permettre de générer un fichier .log des actions et erreurs du composant.
Le plugin AllEvents - Debug se voit pourvoir d'une nouvelle fonctionalité : génération d'un fichier log (stocké dans le dossier /logs de votre site). Ce fichier va reprendre un grand nombre d'informations telles que des erreurs, des warnings rencontrés par AllEvents ainsi que la liste des requêtes SQL exécutées.
L'activation du logging se fait dans le paramètrage du plugin AllEvents - Debug.
Le plugin n'est pas destiné à être installé sur un site de production et l'activation du logging encore moins ! La collecte des informations est un processus gourmand en ressources (cpu et accès disque) et peut avoir un impact conséquent sur la rapidité / disponibilité de votre site. Oui sur un site de développement; non sur un site de production.
Informations supplémentaires
- Premium Package L'information décrite dans ce billet concerne une fonctionnalité du package dit "Premium"; voir liste des packages (lien Présentation du menu supérieur)
Afin de permettre de mesurer la consommation mémoire et le temps d'exécution pris par AllEvents,, un outil de profilage a été implementé. L'information affichée permet de suivre à la trace l'exécution de AllEvents et de voir qui consomme beaucoup de temps, beaucoup de mémoire. Pour l'activer, rien de plus simple : il suffit d'activer le mode debug. Cela peut se faire de différentes façons dont, la plus simple, est d'ajouter le paramètre &debug=1 à votre querystring.
Ci-dessous le résultat que vous pouvez obtenir dans Firebug (sous Firefox) dès lors que l'affichage est activé.
Concrètement, il vous suffit d'aller dans votre barre d'adresse (http://votresite/index.php?option=com_allevents&xxxxxxx) et d'y ajouter le paramètre &debug=1.
Si vous êtes en mode SEF que votre url ne contient pas encore la présence du point d'interrogation, c'est le paramètre ?debug=1 qu'il convient alors d'ajouter.
(cliquez pour agrandir)
Informations supplémentaires
- Premium Package L'information décrite dans ce billet concerne une fonctionnalité du package dit "Premium"; voir liste des packages (lien Présentation du menu supérieur)
De plus en plus, AllEvents va tirer profit de la console de Firebug / navigateur pour vous communiquer des informations susceptibles de vous aider à comprendre le mode de fonctionnement de AllEvents, par où il passe, le contenu de certaines variables, ...
Pour activer le mode de debogage, il suffit d'ajouter &debug=1 dans le querystring. Vous pouvez faire varier le chiffre de 1 à 10.
Ci- dessous un exemple : d'une page de type "Liste d'évènements" qui, selon son paramétrage, doit afficher les évènements du jour, en cours, à venir et passé. Comme vous le verrez sur la capture d'écran ci-dessous, il n'y a pas d'évènements pour la journée et en cours car l'information donnée indique "Nombre d'évènements=0". Pour cette raison, la page n'affichera donc pas ces deux zones-là.
Informations supplémentaires
- Premium Package L'information décrite dans ce billet concerne une fonctionnalité du package dit "Premium"; voir liste des packages (lien Présentation du menu supérieur)
Plugin AllEvents - Debug : Uniquement actif sur le frontend
Écrit par ChristopheIl n'est pas toujours nécessaire d'activer le mode debug dans son backend. Parfois, le debugging concerne juste telle ou telle vue frontend.
Pour ne plus avoir des "popups intempestifs" voire pour simplement limiter l'affichage d'informations dans le backend, le plugin AllEvents - Debug propose maintenant le paramètre "Uniquement actif sur le frontend".

Informations supplémentaires
- Premium Package L'information décrite dans ce billet concerne une fonctionnalité du package dit "Premium"; voir liste des packages (lien Présentation du menu supérieur)
Aide à la programmation : examiner le contenu d'une variable AllEvents
Écrit par ChristopheLorsque vous souhaitez modifier un fichier PHP de AllEvents comme p.e. l'affichage d'une liste d'évènement ou la page événementielle, vous aurez constaté que généralement j'utilise une variable nommée $arrInfos qui est un array et qui contient toutes les informations nécessaires pour l'affichage.
$arrInfos est construit par les différentes classes de AllEvents en tenant compte p.e. des paramètres de la vue, du composant, ... si bien que "vous n'avez qu'à" afficher les données de $arrInfos sans plus vous soucier du reste.
AllEvents embarque maintenant un système très pratique pour visualiser le contenu d'une variable. Auparavant, je vous aurais suggéré de faire un print_r($arrInfos) pour que le navigateur vous en affiche le contenu. Dorénavant, l'affichage se fait dans la console de votre navigateur. L'exemple ci-dessous vous montre la console Firebug dans Firefox.
Supposant que vous connaissez Firebug, je ne vais pas entrer dans les détails ici. La seule chose à savoir est donc comment s'y prendre : en fait, il suffit d'une toute petite ligne de programmation.
AllEventsDebugHelper::console('debug','$arrInfos',$arrInfos,0);
Cette ligne fait appel à la fonction de debugging de AllEvents (AllEventsDebugHelper est défni dans /helpers/debug.php) et la méthode console se charge d'écrire dans la console du navigateur.
- Le premier paramètre est l'onglet à utiliser : cela peut être error, warning, info, log ou encore debug.
- Le second paramètre est soit un texte "bla bla bla" soit une variable ($arrInfos p.e.)
- Le troisième paramètre est le niveau de debugging. C'est un chiffre entre 0 et 9. 0 correspond à un affichage inconditionnel (=tout le temps), les valeurs 1 à 9 correspondent au niveau de &debug= du querystring et donc, si vous spécifiez le chiffre 5, le message ne sera envoyé dans la console que si vous êtes en "mode debugging niveau 5".
Le bonheur de cette nouvelle façon de programmer est multiple :
- beaucoup moins intrusif qu'un bête print_r
- plus propre car les messages sont regroupés par type (error, warning, ...)
- un hyperlien est généré pour immédiatement voir le code source html qui a provoqué l'affichage de l'information
- dans le cas d'un objet / tableau, l'information est de type json (illustré sur la capture d'écran ci-dessus). Il suffit de cliquer dessus pour avoir un affichage ultra-propre des données.
Happy programming.
Informations supplémentaires
- Premium Package L'information décrite dans ce billet concerne une fonctionnalité du package dit "Premium"; voir liste des packages (lien Présentation du menu supérieur)

