Netbeans est un environnement de développement que j'ai eu envie de tester, car je rencontrais quelques problème avec le duo eclipse/x-debug pour php.

 

C'est suite à un Joomapero à Thann que j'ai découvert le produit (Merci à Alain, Cedric et Steve...).

 

Voici donc un petit tuto pour installer Netbeans et le faire fonctionner avec xdebug sur des postes de travail Windows (testé avec Windows 7 et 8).

 

 


Prérequis : un serveur Wamp installé sur votre poste de travail (et fonctionnant correctement !). Dans mon cas ce sera Xamp.


Je ne traiterai pas de l'install de wamp, il y a déjà beaucoup d'articles sur le sujet.

 

 


Télécharger Xdebug

Télécharger la dll de xdebug ici : http://www.xdebug.org/download.php directement dans votre dossier modules php de votre serveur wamp (dans mon cas ce sera dans C:\xampp\php\xdebug).

 

Bien que l'on pourrait mettre la dll directement dans le dossier de php, j'ai préféré la mettre seule dans un sous dossier xdebug, que j'ai crée au préalable.

En effet, comme vous l'aurez constaté il y a 4 versions de la dll Windows pour chaque version de php.

Une 32 et une 64bits, mais aussi une version "simple" et une version "compilateur TS".

Selon votre système Lamp il va falloir choisir la bonne version.
Ne sachant laquelle utiliser, Xamp et Netbeans étant en 32 bits uniquement, je chargé les 4 versions pour php 5.4.

 

Pour commencer chargez uniquement la php 5.4 vc9 32 bits.

xdebug-site

 

configurer PHP pour Xdebug

Ouvrez le fichier de configuration de php avec votre éditeur (dans mon cas C:\xampp\php\php.ini).

 

Cherchez et modifiez la clé : output_buffering

Si besoin décommentez là et mettez output_buffering = off

php output buffering

 

Vérifiez s'il n'y a pas déjà des clés de paramétrage zend et xdebug.

Si oui, désactivez les lignes en les "commentant" (ajout d'un ; devant).

 

 Attention, dans les version récentes, la configuration de xbebug n'est pas dans wamp64/bin/pbhx.y.z/php.ini, mais dans ce même dossier dans phpForApache.ini

Ajoutez à la fin du fichier les lignes suivantes en corrigeant l'adresse et le nom du fichier de la DLL dans la clé zend_extension selon l'emplacement où vous avez effectué le téléchargement lors du § précédent.

 

[xdebug]
 
xdebug.default_enable=1
 
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_autostart=1
 
zend_extension="C:/xampp/php/xdebug/php_xdebug-2.2.2-5.4-vc9.dll"

 

Attention: d'après la documentation il faudrait utiliser la clé zend_extension_ts depuis php 5.4.

 

Or avec xamp il s’avère que c'est bien la clé zend_extension qui fonctionne (et donc avec les bibliothèques dll sans la mention nts).

 

Par ailleurs xamp fonctionnant en 32 bits, il faudra utiliser la version 32 bits de la dll, ceci même si votre Windows est en 64 bits.

 

Faites déjà un essai avec cette dll (les problèmes seront traité dans la § suivant) et pensez à redémarrer apache (stop/start).

 

apache start


Vérification du fonctionnement de xdebug

Si vous ne l'avez pas déjà créé dans un de vos domaine desservi par votre serveur Wamp, créez un fichier phpinfo.php contenant les lignes :

<? phpinfo() ?> et exécutez le.

 

Toutefois, certains panel d'admin Wamp on directement un lien vers un phpinfo (c'est la cas de Xamp).

 

Faites une recherche sur la page de phpinfo sur "xdebug".

Il doit apparaitre plusieurs fois et vous devez avoir un paragraphe xdebug.

 

phpinfo-xdebug-01phpinfo xdebug infos phpinfo-xdebug

 

Si vous n'avez pas cette rubrique vérifier vos chemin dans le paramètre zend_extension ou zend_extension_ts

 

Selon les cas je vous conseille d'essayer dans l'ordre les autres versions des dll en commencant par les 32 bits (en modifiant à chaque fois le chemin selon l'emplacement où vous avec chargé les dll) :

  • zend_extension="C:/xampp/php/xdebug/php_xdebug-2.2.2-5.4-vc9.dll" (c'est la dll que nous venons de tester)
  • zend_extension_ts="C:/xampp/php/xdebug/php_xdebug-2.2.2-5.4-vc9-nts.dll"
  • zend_extension="C:/xampp/php/xdebug/php_xdebug-2.2.2-5.4-vc9-x86_64.dll"
  • zend_extension="C:/xampp/php/xdebug/php_xdebug-2.2.2-5.4-vc9-nts-x86_64.dll"

en redémarrant Apache à chaque fois bien sur et en rafraichissant l'affichage de phpinfo.

 


Installation de Java SDK SE

 

Attention Netbeans tout comme Eclipse a besoin de la plateforme Java Standard Edition (Developpment Kit) pour fonctionner.

 

Si vos n'êtes pas sur d'avoir le SDK (ou la bonne version) essayez d'installer netbeans (voir § suivant).
Si l'installateur ne trouve pas Java SDK (ou la bonne version vous serez avertis).

 

Dans la page : http://www.oracle.com/technetwork/java/javase/downloads/index.html

 

Sélectionnez Java Plateform (JDK) (et pas JDK + Netbeans).

java site 02

 

Acceptez la licence et choisissez la version adapté à votre système (ici Windows x64 - sous Windows 64 bits).

java site 03

 


Installation de Netbeans.

Télécharger Netbeans-php ici : https://netbeans.org/downloads/index.html tout en pensant à bien choisir la langue et l'OS qui vous conviennent dans les combo du haut d'écran.

 

La version en cours de Netbeans le jour de la rédaction de cet article est la 7.3.

Vous allez donc télécharger le fichier netbeans-7.3-php-windows.exe

 

Lancez l'installation.

 

Si l'installateur ne trouve pas Java SDK (ou la bonne version vous serez avertis).

 

Annulez et reprenez alors au § Installation de Java.

 

L'installation de Netbeans est assez longue (même sur disque ssd).

 

Lancement de l'éditeur et du deboggeur

 

Exécutez Netbeans.

netbeans exe 01

 

 

Et vérifier les options du debuggeur (outils -> options -> Php -> onglet Debugging).

netbeans conf options netbeans config debug

Vous contaterez que Netbeans a trouvé automatiquement sa conguration selon la configuration de php, c'est déjà un bon signe.

 

Créez votre projet (ici j'integre un projet existant).

 

netbeans exe creer projet 01  netbeans exe creer projet 02 netbeans exe creer projet 03 netbeans exe creer projet 04

 


Sélectionnez un fichier (ici l'admin de joomla).

 

Et lancez le deboggage.

 

Selon le cas, votre FireWall vous demandera d’autoriser l'accès à Netbeans.

netbeans-debug-firewall

 

Netbeans lance le navigateur par défaut (configurable) et s’arrête au premier point d’arrêt rencontré.

netbeans debug 1ere point arret

 

Si votre page s'affiche totalement sur le navigateur alors que vous auriez du rencontrer un point d’arrêt, vérifiez dans la partie droite en bas de la fenêtre de l'éditeur de Netbeans.

 

Voici ce que vous devez avoir :

netbeans xdebug running

 

Si vous avez :

netbeans xdebug problem

 

Revérifiez le bon fonctionnement de xdebug voir § correspondant...

 

De base, il y a un point d’arrêt au début du script (tout comme Eclipse).

Vous pouvez supprimer cette option (toujours dans le menu outils > options > php > Debbuging

netbeans config debug first line