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
Il vous suffit, pour cela, d'installer les paquets php-xdebug php7.3.
Note : le numéro de version PHP est a adapter
Tout d'abord, é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.remote_enable=On xdebug.remote_host="localhost" xdebug.remote_port=9000
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 :
<?php phpinfo(); ?>
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
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.
Lancez Eclipse, puis dans le menu "Window → Preferences".
Sélectionnez PHP → Debug, vous obtenez ceci par défaut.
Cliquez sur le lien "PHP Executables", dans la nouvelle fenêtre cliquez sur le bouton "Add", et renseignez comme ceci :
et validez.
Revenez sur la section Debug pour compléter les informations comme ci-dessous :
Rq : Attention, pour XDebug >=3, le port d'ecoute par defaut a préciser est 9003 (et non 9000 avant).
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 :
Cliquez sur le bouton "New" et ajoutez les informations suivantes :
Validez et paramétrez ensuite comme ci-dessous :
Allez dans le menu "Run", et vous obtiendrez des sous-menus spécifiques comme ci-dessous
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 :
Contributeur : chtiland, quent57
Basé sur (en) Debugging PHP Applications with Xdebug and Eclipse PDT par Hodge