Formation PUB010 : PHP, 2018 Déboguer un programme PHP

Fonction de débogage : echo_debug()


▼Publicité

Utilisation d'un débogueur : solution idéale

La meilleure technique pour déboguer un programme PHP consiste à utiliser un débogueur. Cependant, si vous n'avez pas accès à un IDE avec débogueur (PhpStorm - gratuit pour étudiants d'un établissement enregistré - et CodeLobster - gratuit pour tous - sont de bons exemples d'IDE offrant un débogueur) ou si un problème technique vous empêche d'utiliser le débogueur, la technique expliquée ici est une bonne solution de rechange.

Utilisation de echo : mauvaise approche

Historiquement, les programmeurs PHP utilisaient des echo pour afficher de l'information de débogage. Cependant, lors de la mise en ligne du programme, il pourrait arriver que des echo de débogage soient encore présents dans le code.

Ceci pourrait générer de l'affichage indésirable ou, pire encore, ouvrir un trou se sécurité.

Utilisation d'une fonction de débogage : meilleure approche

C'est pourquoi il est préférable d'utiliser une fonction qui génère un echo seulement lorsqu'on est en mode développement.

Voici comment créer une telle fonction.

  • Dans un fichier de configuration (configuration.inc, placé dans le dossier include de votre projet), créez une constante DEVEL.
    PHP

    define('DEVEL', true);

    Cette constante prendra la valeur true lorsque vous êtes en train de développer votre site sur un serveur local et false lorsque le site est en ligne.

  • Prenez soin d'inclure ce fichier dans chacune des pages de votre projet.
  • Dans le dossier include de votre projet, créez un fichier nommé debug.php. Ce fichier contiendra toutes les fonctions de débogage.
  • Dans ce fichier, déclarez une fonction nommée echo_debug() ou echoDebug() selon les normes de programmation de votre établissement.
    • La fonction recevra en paramètre le message à afficher.
    • L'affichage n'aura lieu que si la constante DEVEL est définie et que sa valeur est à true.

    • Le message sera affiché dans un <div class="debug">.
    • L'affichage du message sera fait à l'aide de print_r() s'il s'agit d'un tableau (utilisez is_array() pour le savoir) ou un objet (is_object()). Sinon, un simple echo fera l'affaire.
  • Dans votre feuille de style, définissez l'apparence de la classe debug, selon votre inspiration. Suggestion : afficher dans un rectangle aux coins arrondis, avec une couleur de fond qui constraste avec celle de votre contenu principal.

    Voici un exemple pour l'apparence du message affiché en débogage.

  • Voici donc le code complet de cette fonction :
    Fichier include/debug.php

    /**
    * Affiche une information de débogage seulement lorsque DEVEL est à true.
    *
    * Utilisation : echo_debug($mysqli->error);
    * Suppositions critiques : pour un meilleur affichage, définir la classe debug dans la feuille de style.
    * @param String $message Information à afficher. Affichera "débogage" si ne reçoit aucun paramètre.
    *
    * @author Christiane Lagacé <christianelagace.com>
    *
    */
    function echo_debug($message = 'débogage') {

     

        if (defined('DEVEL') && DEVEL === true) {
            echo '<div class="debug">';

     

            if (is_array($message) || is_object($message)) {
                print_r($message);
            }
            else {
                echo $message;
            }

     

            echo '</div>';
        }
    }

  • Dans le fichier qui doit utiliser votre fonction de débogage, après avoir inclus votre bibliothèque de débogage et votre fichier de configuration, ous pourrez utiliser la fonction à l'endroit désiré.
    Fichier index.php

    require_once 'include/configuration.inc';

    require_once 'include/debug.php';

    ...

    echo_debug("Valeur entrée : {$_POST['montant']}");

Dernière révision le 19 septembre 2019
Merci de partager !

Site fièrement hébergé chez A2 Hosting.

Soumettre