Je me suis penché récemment sur le débogage du code PHP avec l’EDI WebMatrix, en utilisant l’extension xDebug.
WebMatrix est un environnement de développement Web robuste, léger (15 Mo), efficace et surtout gratuit développé par Microsoft. Il permet aux développeurs Web de créer et gérer des applications Web sur la plate-forme Windows, tout en restant compatible avec les produits Microsoft Visual Studio, SQL Server ou encore PHP sur Windows.
WebMatrix peut également être utilisé pour la création ou la modification des applications Web PHP. Les taches de débogages peuvent être énormément simplifiées grâce à l’utilisation de l’extension populaire PHP xdebug, qui aide au débogage en personnalisant les messages d’erreur en y ajoutant toute la pile des appels de fonctions et de classes et au profiling des scripts PHP.
Dans ce billet de blog, nous verrons comment installer et utiliser l’extension xdebug avec WebMatrix.
Pour commencer, vous pouvez télécharger WebMatrix sur cette page, et lire mon tutoriel d’introduction pour une prise en main de l’EDI.
Après avoir vérifié que PHP est téléchargé et activé (lire cette section de mon article), téléchargez la version appropriée de Xdebug sur le site de l’éditeur.
Copiez la DLL dans le dossier
C: \ Program Files \ IIS Express \ PHP \ v5.2 \ ext \
pour la version 5.2 de PHP
Ou dans le dossier pour PHP 5.3
C: \ Program Files \ IIS Express \ PHP \ v5.3\ ext \
pour la version 5.3 de PHP.
Procédez ensuite à la configuration du fichier PHP.ini. Le fichier PHP.ini est disponible dans le dossier suivant:
C: \ Program Files \ IIS Express \ PHP \ v5.x \
Pour la suite, supposons que nous utilisons la version 5.3 de PHP.
Ouvrez le fichier php.ini et ajoutez la ligne suivante à la fin du fichier.
[Xdebug]
zend_extension=C:\Program Files\IIS Express\PHP\v5.3\ext\php_xdebug-2.1.1-5.3-vc9-nts.dll
Nous allons ensuite configurer PHP pour afficher les messages d’erreurs en de-commentant les lignes suivantes :
display_errors = on
error_reporting = E_ALL & ~E_NOTICE
Maintenant nous allons tester si l’extension est correctement installée et activée. Pour cela, nous allons appeler la fonction phpinfo().
Ou exécutez un code bogué.
C’est tout. Vous pouvez maintenant profiter de l’ensemble des fonctionnalités que xdebug met à votre disposition pour effectuer le débogage de votre application web.
Progiling avec xdebug
Penchons-nous maintenant sur le profiling d’une application PHP dans WebMatrix.
Pour mémoire, le profiling permet de tracer et chronométrer tous les appels des méthodes et fonctions php effectuées.
Pour effectuer un profiling, nous allons dans un premier temps activer cette fonctionnalité de Xdebug en ajoutant tout simplement les lignes suivantes au fichier php.ini.
xdebug.profiler_enable = On
xdebug.profiler_output_dir = « C:\temp »
xdebug.profiler_output_name = « cachegrind.out.%s »
Après exécution de notre application PHP, une trace sera créée dans le dossier temp avec pour nom cachegrind.out.nomfichier.
Pour visualiser et analyser ce fichier de trace, nous allons utiliser l’application WinCacheGrind qui est téléchargeable sur cette page.
Et voila ;), bon debugging et bon profiling de votre application PHP avec WebMatrix et xdebug
Bonjour
C’est exactement ce que je cherchais. Le tuto est clair et précis, sauf que ça ne fonctionne pas. (je précise que je suis débutant en PHP, pour ne pas dire ultra débutant).
je me suis heurté à quelques petites différences avec le tuto:
1- pour téléchargé la DLL j’ai du trouvé ma version PHP (je ne savais pas), puis savoir si je devais la prendre en 64 ou 32 bit (mon os est 64 bits mais le serveur php est dans « program file (x86) donc j’ai pris la 32 bit.
2- j’ai modifié le nom du fichier dll pour qu’il corresponde a celui que j’ai téléchargé et modifier l’arborescence:
zend_extension=C:\Program Files\IIS Express\PHP\v5.3\ext\php_xdebug-2.1.1-5.3-vc9-nts.dll
devient:
zend_extension=C:\Program Files (x86)\iiS Express\PHP\v5.3\ext\php_xdebug-2.2.5-5.3-vc9-nts.dll
au lancement de webmatrix, j’ai eu une ereur de syntaxe à cause du « ( » rencontré (Program files (86))
j’ai donc rajouté des guillemets:
zend_extension= »C:\Program Files (x86)\iiS Express\PHP\v5.3\ext\php_xdebug-2.2.5-5.3-vc9-nts.dll »
la, je peux utiliser Webmatrix sans erreurs, mais si je crée un Bug php rien ne se passe (page blanche)
Oublier un ; peut-on parler de bug? ou, dois je faire un vrai bug?