Sommaire |
[modifier] Un environnement de développements
On va utiliser le module Eclipse : PHPEclipse
[modifier] Installation
[modifier] Eclipse 3.1
Comme indiqué sur le site Plog4u, le mode debug de PHPEclipse 1.1.8 ne fonctionne pas avec Eclipse 3.2. On va donc installer Eclipse 3.1.
- Télécharger Eclipse 3.1
- Dézipper le fichier eclipse-SDK-3.1-win32.zip dans le répertoire d'installation d'Eclipse
[modifier] PHPEclipse
- Clicker sur Help->Software Updates->Find/Install dans Eclipse.
- Choisir "search for new features to install".
- Puis "New Remote Site"
- Entrer un nom (PHPEclipse), et l'URL: http://phpeclipse.sourceforge.net/update/cvs
- "Finish".
- Sélectionner "phpeclipse" puis Next
- Suivre les instructions pour terminer l'installation
[modifier] DBG Debugger
- Télécharger DBG 2.15.5 dbg modules
- Copier php_dbg.dll (win32) or dbg.so (linux) dans le répertoire ext de PHP
- Ajouter extension=php_dbg.dll (win32) ou extension=dbg.so (linux) dans le fichier php.ini
- Activer le debugger: Ajouter ou modifier le fichier php.ini:
[debugger]
debugger.enabled = true
debugger.profiler_enabled = true
debugger.JIT_host = clienthost
debugger.JIT_port = 7869, 10000/16
clienthost est un mot clé de DBG. Si vous l'utiliser, DBG détectera automatiquement l'IP de chaque client.
Vous pouvez utiliser phpinfo() pour contrôler votre installation.
[modifier] Utilisation
Bon, c'est un peu galère à faire tourner, mais quand ça marche, c'est ... utile, lourd, mais utile. Cela ralenti considérablement l'exécution mais cela permet parfois de résoudre rapidement un problème ...
Il faut donc créer une nouvelle configuration de debugage dans PHP DBG Script (après avoir fait Debug As dans Eclipse). Dans la page principale on renseigne :
- Le Projet
- Eventuellement le fichier à debugger
Et dans l'onglet Environnement
- Interpreter (php.exe)
- On coche Remote Debug
- On renseigne Remote Source Path (le chemin d'accès aux sources)
Et il n'y a plus qu'a ...
Pour activer le debugger, après avoir démarrer le debug dans Eclipse, il suffit d'ajouter le paramètre DBGSESSID=1@localhost:10001 à l'URL que l'on souhaite debugger. (10001 est le port d'écoute du debugger, visible dans la perspective Debug d'Eclipse)
Pour que le script s'arrête sur un point d'arrêt, il doit être ouvert !
[modifier] Un Environnement de Tests Unitaires
--Martin Fowler
La documentation de phpunit
[modifier] Installation
L'installation s'effectue avec Utilisation de Pear, reportez vous au manuel pour son installation.
Pour ce qui est de phpunit, on va d'abord déclarer le chanel si ce n'est déjà fait:
pear channel-discover pear.phpunit.de
Ce qui nous donne
Adding Channel "pear.phpunit.de" succeeded Discovery of channel "pear.phpunit.de" succeeded
Puis l'installation de phpunit à proprement parlé :
pear install phpunit/PHPUnit
[modifier] Utilisation
Comme le dit l'auteur (Sebastian Bergmann) dans son livre
Enfin le livre est utile, mais effectivement ça reste dans la ligné des XUnit.
Toute fois parmi les choses utiles :
- Un fichier par classe, c'est plus simple ... surtout si il porte le nom de la classe. Sinon le --skeleton a du mal ...
- Attention au consigne de nommage PEAR utilisées pour retrouver les fichiers, mais là encore on peu ne pas respecter.
- Générer le squelette d'une classe de Test :
phpunit --skeleton Le_nom_de_la_classe
[modifier] Mesure de couverture de tests avec XDebug
A utiliser conjointement avec PHPUnit, Xdebug donne de précieuses information concernant la couverture de test, permettant ainsi de s'assurer que tout le code est correctement outillé. En PHP plus que d'en n'importe quel langage compilé mesurer la couverture de code par les tests unitaires est un précieux gage de fiabilité.
Cela évite de finir par tomber un jour sur un cas foireux qui vous plante un site à cause d'une fonction inexistante ou d'un oublie de $ devant une variable.
[modifier] Installation
Simple, téléchargez le fichier correspondant à votre version de PHP sur xdebug.org (à droite), puis copiez le dans votre répertoire d'extension.
Puis, dans le php.ini de votre répertoire d'installation (utilisation en ligne de commande) et dans celui de windows (module apache) ajoutez après les extensions la ligne (en adaptant le path à votre configuration):
zend_extension_ts=F:\PHP\ext\php_xdebug-2.0.0rc3-5.2.1.dll
[modifier] Utilisation
Pour le rapport de couverture de la suite MainPackage:
phpunit --report ./report MainPackage
