Débogueur de développement

Une nouvelle lame du Couteau Suisse permettant de régler les niveaux d’erreurs PHP renvoyées à l’écran et de sélectionner l’espace SPIP sur lequel appliquer ces réglages.

Présentation

Le débogueur est un outil de développement vous permettant de gérer le traitement des erreurs de vos scripts PHP dans SPIP. Il propose de choisir le niveaux d’erreurs qui seront renvoyées et écrites à l’écran (avec les explications standards de PHP) ainsi que l’espace de SPIP qui sera concerné : les pages publiques seules, les pages privées seules ou toutes les pages publiques et privées.

Cette lame a été ajoutée au plugin Couteau Suisse à partir de sa révision 40923 (le 20/09/2010). Elle est proposée dans la catégorie d’outils « Divers ». Si elle n’apparaît pas dans votre version du plugin, mettez-le à jour.

Aperçu de la lame

Techniquement ...

Gestion des erreurs

Lorsque le débogueur est actif, l’option de configuration PHP « display_errors » est définie sur ’true’ en fonction de l’espace de SPIP que vous sélectionnez : pages publiques, pages privées ou les deux. L’option PHP « error_reporting » est définie sur la valeur sélectionnée parmi les principaux niveaux proposés par PHP [1].

Pour rappel, sont listés ci-dessous les différents types de messages renvoyés par le compilateur PHP, suivis de la valeur passée par le filtre du débogueur à l’option « error_reporting » :

  • les messages d’erreurs graves ou fatales arrêtant le déroulement du script : E ERROR ;
  • les messages d’avertissements, ou alertes, qui n’arrêtent pas l’exécution du script : E WARNING ;
  • les notices d’information de problèmes à l’exécution (variables non déclarées par exemple) : E NOTICE [2] ;
  • des conseils PHP sur l’utilisation des globales, les options de configuration et le déroulement du script en général : E STRICT [3] ;
  • E ALL renvoie toutes les erreurs PHP sauf les conseils.

Liens de documentation

Les messages d’erreur PHP sont formatés par la lame de façon à ce que les liens proposés lors de l’utilisation erronée d’une fonction standard vous renvoient vers la documentation officielle en ligne de PHP [4] (http://www.php.net/docs.php). Ces liens de documentation sont ici redéfinis du type « php.net/manual/en/la_fonction.php » [5], ce qui implique une connexion Internet.

Si rien ne va plus ...

En cas de problème d’affichage (une page blanche en partie privée par exemple) vous interdisant d’accéder à la page de configuration classique du Couteau Suisse, une page privée présentant le formulaire du débogueur seul est accessible à l’adresse : « ecrire/ ?exec=debug ». Elle est réservée au webmestre du site et ne renvoie aucun message (pas d’information de modification des réglages du filtre). Elle n’est à utiliser qu’en cas exceptionnel.

Pour aller plus loin

Pour compléter une structure SPIP de développement, vous trouverez sur Spip-Contrib d’autres plugins intéressants, et notamment :

  • les plugins Les tests unitaires et TestBuilder, qui permettent de mettre en place rapidement des scripts de tests pour vos développements, qui sont peu utilisés et pourtant très utiles (par exemple pour tester la compatibilité de modifications ...) ;
  • le plugin Testeur : un shell PHP pour tester vos scripts, qui vous permet de tester rapidement des lignes de commande PHP depuis l’espace privé de SPIP.

Notes

[1À noter ici que la lame ne propose pas de niveaux « utilisateur » (E_USER_ERROR ...) qui sont a priori peu utilisés dans les développements sur un noyau SPIP. Cette option pourra être proposée dans les prochaines évolutions de la lame en fonction des besoins.

[2Attention en partie privée de SPIP, cette option peut alourdir considérablement l’affichage des pages (suite de notices en en-tête).

[3Cette option est une nouveauté de PHP5 et peut être très utile lors des initialisations et déclarations de globales ou constantes, afin de vérifier que les suppositions faites au départ sont avérées et ne dépendent pas du système faisant tourner PHP.

[4Par défaut, le fichier de configuration « php.ini » de la distribution de PHP construit les liens de documentation vers une documentation ... interne au serveur lisant le script !

[5Cela correspond à l’URL d’actualité dans la documentation officielle à la date de rédaction de cet article.

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom