Comment détecter les erreurs PHP E_NOTICE et E_STRICT dans son IDE

Posted by Alexandre Heimburger Thu, 26 Jun 2008 20:15:00 GMT

 PHP n’étant pas compilé (on commence à le savoir), il est très facile de faire des erreurs de programmation. Et si le niveau d’erreur est supérieur à E_NOTICE ou E_STRICT, ces erreurs ne sont jamais remontées. Pourtant cela peut entraîner des erreurs lors de l’exécution, des allocations de mémoire inutiles….  

Donc plutôt que de traquer les erreurs dans les logs php pendant l’exécution, Zend Studio dispose d’une commande très intéressante : l’analyseur de code (pomme-alt-Asous mac et ctrl-alt-a sous windows).

J’avais déjà parlé de Zend Studio dans cette note. C’est à mon sens le meilleur IDE Php du moment.

 

 L’analyseur détecte ce genre d’erreurs de programmation :

- utilisation d’une variable non initialisée : l’exemple typique est un foreach sur une variable non initialisé qui peut provoquer une fatal error si la variable en question n’est pas un array

- déclaration d’une variable qui n’est jamais utilisée : pourquoi gâcher de la mémoire et des lignes de code ?

- utilisation de variables non testées dans des include : ce genre d’erreur peut être désastreux.

Exemple :

 

include($_GET["module])

En appelant l’url du script de cette manière : http://url_du_script?module=/etc/passwd, on affiche tous les comptes utilisateurs du serveur (dans le cas d’un serveur unix).

- if-else sans accolade : moins lisible et plus difficile à debugguer

- inconsistence des valeur de retour des fonctions "both empty return and return values are used in the function XXX" : manque de lisibilité et maintenance du code plus délicate.

 

Encore une fois, il est très facile de mal coder en PHP. Rares sont les applications professionnelles qui peuvent être exécutées avec un niveau d’erreur maximale. Je pense que tout développeur devrait avoir la rigueur de développer dans ces conditions.