Prérequis
- Eclipse Classic Indigo 3.7;
- PHP 5.3, seul l'exécutable en ligne de commande nous intéresse;
- XDebug (optionnel), pour les rapports de couverture de code.
Zoom sur les outils
PHP CodeSniffer
Détecte les violations de convention de nommage. PHP CodeSniffer propose plusieurs conventions par défaut comme Zend ou PEAR ; il est possible de définir facilement vos propres normes en écrivant votre propre standard, l’outil étant développé en PHP.
PHP Unit
- un Framework qui permet d’écrire facilement des tests unitaires pour l’univers PHP ;
- un exécutable, pour lancer des tests écrits grâce au Framework dans le but d’en analyser les résultats.
Intégration avec Eclipse
PHP Tool Integration (PTI)
La librairie PEAR embarqué dispose déjà des outils abordés précédemment : vous n’avez donc pas à les installer manuellement.
Des outils de métrique sont également de la partie avec PHP Depend et PHP Mess Detector qui proposent une analyse statique du code source.
Site officiel : http://www.phpsrc.org/
Installation
L’installation testée avec la dernière version d’Eclipse (Indigo 3.7) :
- depuis Eclipse, accèdez au menu « Help » -> « Install New Software » ;
- ajoutez le site http://www.phpsrc.org/eclipse/pti/ puis lancez l’installation ;
- redémarrez Eclipse.
Note : cette version, bien que fonctionnelle se fait vieillissante ; son développeur se penche en ce moment sur une version 2 totalement refondue afin de faciliter les contributions externes.
Configuration d'Eclipse
Pour fonctionner, les outils doivent utiliser votre version de PHP5.3. Vous devez donc spécifier à Eclipse à quel emplacement elle est installée via le menu « Windows » -> « Preferences » -> « PHP » -> « PHP Executables ».

Validez : votre espace de travail Eclipse est maintenant configuré.
Configuration de votre projet
Nous allons maintenant configurer les outils par projet. Vous pouvez cependant spécifier une configuration pour l’ensemble de votre espace de travail depuis le menu « Window » -> « Preferences ».
Créez un nouveau projet PHP puis accédez à ses propriétés. Le menu PHP Tools vous propose 4 outils à configurer : PHP CodeSniffer, PHP Copy/Paste Dectector, PHP Depend, PHPUnit.
Pour chacun des outils, vous devez sélectionner l’exécutable PHP qui leur permettra de fonctionner ainsi que la librairie PEAR que vous utilisez pour les détecter. Par défaut, le plugin PTI a installé une librairie PEAR incluant les outils nécessaires sous le nom « Internal ».
Chaque outil possède ensuite ses propres réglages : ici pour PHPCodeSniffer il s'agira de sélectionner les standards d'écriture utilisés.
En action !
Pour la détection de différent par rapport à la norme de codage choisie, le plugin est intégré au parseur d’Eclipse et se lancera dès que des modifications seront apportées à un fichier.
Comme nous pouvons le voir, le passage vers la norme de codage du CMS Drupal ne se fait pas en douceur : les messages d’erreurs sont très envahissants.
Si nous désirons tester unitairement cette classe ; le plugin peut se charger de générer le fichier de test via un clic droit sur notre fichier -> New -> Other -> PHP -> PHPUnit -> PHPUnit Test Case.
On peut noter qu’il est également possible de sélectionner le template « PHP Class from PHPUnit Test Case qui, comme son nom l’indique, vous offre la possibilité d’écrire en premier lieu votre classe de test afin de générer le squelette de votre future classe.
L’arborescence est alors déployée et la classe de test est déjà pré-remplie.
Il est intéressant de noter qu’aucun standard fourni avec PHP CodeSniffer n’a permis de valider le fichier généré. Nous pouvons alors lancer notre test, depuis l’un des boutons situés au-dessus de l’éditeur de texte. Si vous lancez le test avec l’option de couverture de code, un message d’information vous avertira des portions qui n’ont pas été testées :

La vue PHPUnit peut alors vous informer des tests qui ont échoué :
Ce billet, déjà bien long, s'arrête ici ; si vous désirez approfondir la discussion autour de l’un des outils en particulier, n’hésitez pas, exprimez-vous !




Commentaires
Avant d'installer les differents plugins du site http://www.phpsrc.org/eclipse/pti/, il faut installer PHP Development Tools (PDT) pour pourvoir appliquer les éléments du post.
C'est une vraie mine d'or. Il y aura-t-il une manière d'installer le pack à partir d'un fichier archive? sans connexion internet?