{{tag>Xenial Eclipse BROUILLON}}
----
====== Eclipse et PHP-XDebug ======
Cette documentation est basée sur une installation d'Eclipse PDT (Simplement téléchargée, décompressée et utilisée telle quelle). Cependant je ne vois pas pourquoi cela ne s'appliquerait pas à d'autres.
Vous avez installé Eclipse pour faire de développement PHP, mais qu'en est-il du débug ?\\
Bien entendu, passer par les fonction var_dump(), echo print etc. est une solution, mais il est toujours plus interessant d'avoir plus d'informations et de pouvoir utiliser des points d'arrêts/pause dans l'exécution du script pour surveiller ses variables et voir si le résultat est celui attendu avant la fin du script.\\
Xdebug est une extension PHP très pratique, écrite par l'un des développeurs de PHP, Derick Rethans. \\
Bien entendu la version Xdebug peut aussi s'installer en téléchargeant les binaires du site, en compilant les sources ou via PECL. Pour les anglophones qui préfèrent installer la dernière version, je vous invite à consulter les liens en bas de page ;-)
===== Pré-requis =====
* Disposer des [[:sudo|droits d'administration]],
* Disposer d'une connexion à Internet configurée et activée ;
* Avoir installé un serveur [[LAMP]] et disposer d'[[Eclipse]] fonctionnel.
===== Installation =====
Il vous suffit, pour cela, d'[[:tutoriel:comment_installer_un_paquet|installer les paquets]] **[[apt>php-xdebug]] [[apt>php7.3]]**.
Note : le numéro de version PHP est a adapter
===== Configuration =====
Tout d'abord, [[:tutoriel:comment_editer_un_fichier|éditez le fichier]] **/etc/php/7.3/apache2/conf.d/20-xdebug.ini** vous devez y trouver la ligne suivante :
zend_extension=xdebug.so
Comme indiqué dans le documentation officiel de Xdebug que vous trouverez ici [[https://xdebug.org/docs/remote]],
vous devez activer Xdebug en ajoutant les lignes suivantes :
* XDebug < 3 :
xdebug.remote_enable=On
xdebug.remote_host="localhost"
xdebug.remote_port=9000
* XDebug >= 3
zend_extension=xdebug.so
xdebug.mode = debug
xdebug.discover_client_host = 1
xdebug.start_with_request = yes
Relancez le serveur apache
sudo systemctl restart apache2
Pour vérifiez l'installation, créez une page test.php contenant ces lignes :
puis ouvrez cette page (ex. : http://127.0.0.1/test.php), vous devriez obtenir ceci :
PHP Version 7.3.23-2+ubuntu20.04.1+deb.sury.org+1
This program makes use of the Zend Scripting Language Engine:
Zend Engine v3.3.23, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.23-2+ubuntu20.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
with Xdebug v2.9.8, Copyright (c) 2002-2020, by Derick Rethans
et un peu plus bas (extrait) :
xdebug support enabled
Version 2.9.8
et
xdebug.remote_enable On On
xdebug.remote_host localhost localhost
xdebug.remote_log no value no value
===== Configurer Eclipse =====
Par défaut il manque le plugin PHP : PDT
Aller dans le menu Help/Install new software...
Collez dans "work with" l'URL suivante :
[[https://download.eclipse.org/tools/pdt/updates/latest/]]
puis on clique sur Add...
Cliquez sur OK sur la fenêtre popup "Add Repository" sans indiquer de Name.
Cochez le module de PDT. Cliquez sur Finish en bas de la fenêtre.
Le téléchargement et l'installation se déroule pendant quelques minutes.
Relancez Eclipse pour prendre en compte la modification. ;-)
==== XDebug ====
Lancez Eclipse, puis dans le menu "Window -> Preferences".
Sélectionnez PHP -> Debug, vous obtenez ceci par défaut.
{{eclipse_xdebug_param1.jpg|}}
Cliquez sur le lien "PHP Executables", dans la nouvelle fenêtre cliquez sur le bouton "Add", et renseignez comme ceci :
{{eclipse_xdebug_param2.jpg|}}
Pour valider le chemin vers l'exécutable php (ou tout autre exécutable), utilisez la commande suivante dans un terminal "which php".
et validez.
Revenez sur la section Debug pour compléter les informations comme ci-dessous :
{{eclipse_xdebug_param3.jpg|}}
Rq : Attention, pour XDebug >=3, le port d'ecoute par defaut a préciser est 9003 (et non 9000 avant).
==== Firefox ====
Je pense que ce paramétrage n'est pas requis si Firefox est le navigateur par défaut, mais on va tout de même s'y intéresser car cela peut aussi être valable pour utiliser d'autres navigateurs pour le debug.
Allez dans le menu "Window -> Preferences", déployez la section "General" et sélectionnez "Web Browser", vous arrivez ici :
{{eclipse_xdebug_param4.jpg|}}
Cliquez sur le bouton "New" et ajoutez les informations suivantes :
{{eclipse_xdebug_param5.jpg|}}
Validez et paramétrez ensuite comme ci-dessous :
{{eclipse_xdebug_param6.jpg|}}
===== Utilisation =====
Allez dans le menu "Run", et vous obtiendrez des sous-menus spécifiques comme ci-dessous
{{eclipse_xdebug_use1.jpg|}}
Si tel n'est pas le cas, il faut revoir les paramètres de votre projet, mais à l'heure actuelle, je ne m'en souviens plus trop :-? ayant fait cette manipulation il y a pas mal de temps... donc si une autre personne avant moi veut bien compléter : FIXME ;-)
==== Voir aussi =====
* **(en)** [[http://www.xdebug.org/|Site Officiel XDebug]]
----
//Contributeur : [[utilisateurs:chtiland|chtiland]], [[utilisateurs:quent57|quent57]]//
//Basé sur **(en)** [[http://www.64bitjungle.com/tech/debugging-php-applications-with-xdebug-and-eclipse-pdt/|Debugging PHP Applications with Xdebug and Eclipse PDT]] par Hodge//