Comment débugger PHP sous l'IDE Netbeans pour PHP

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

17 juin 2008, 13:48

Retrouvez NetBeans IDE for PHP pour le développement PHP ici : http://www.netbeans.org/downloads/index.html

C'est un vrai régal :lol: surtout le débogage via xdebug.

Voici comment installer le serveur xdebug sous PHP pour inter-agir avec NetBeans for PHP:

1. Installer et configurer xdebug sous Wamp par exemple (chemin : "c:/wamp"):

Créez un dossier personnalisé pour y installer xdebug (exemple: C:/wamp/xdebug)
Créez y deux sous-dossiers :
- C:/wamp/xdebug/ext/ : Pour y stocker les extensions .dll de xdebug
- C:/wamp/xdebug/trace/ : Pour y stocker les fichiers de trace de xdebug

Téléchargez l'extension xdebug.dll à partir de : http://www.xdebug.org/download.php
En enregistrez la dans le dossier C:/wamp/xdebug/ext/


2. Paramètrer xdebug dans PHP.INI de WAMP (avec redémarrage d'apache):

Ajoutez la section suivante dans php.ini:

Code : Tout sélectionner

[xdebug] ; Extension du serveur xdebug zend_extension_ts="C:/wamp/xdebug/ext/php_xdebug.dll" ; Accès distant au serveur xdebug xdebug.remote_enable=1 xdebug.remote_host="127.0.0.1" xdebug.remote_port=9000 ; Trace de xdebug xdebug.auto_trace=1 xdebug.trace_format=0 xdebug.show_mem_delta=1 xdebug.trace_output_dir="C:/wamp/xdebug/trace" xdebug.trace_output_name="trace.%t" ; Collecte de variables locales, paramètres et retours de fonctions xdebug.collect_vars=1 xdebug.collect_params=4 xdebug.collect_return=1 xdebug.show_local_vars=1 ; Dump variables superglobales xdebug.dump_globals=1 xdebug.dump=COOKIE,FILES,GET,POST,REQUEST,SERVER,SESSION xdebug.dump.SERVER=REMOTE_ADDR,REQUEST_METHOD ; Profileur xdebug (stat et graph)
3. Utiliser "xdebug" sous NetBeans pour PHP
Sous NetBeans, vous avez ouvert ou créé un projet PHP et vous travaillez sur une page PHP que vous souhaitez débugger.

Il suffit alors de placer des points d'arrêt (break points) sur les lignes de code que vous voulez débugger en cliquant sur la marge à gauche de chaque ligne,

ajouter des variables dans la fenêtre "espions" (watchs) en sélectionnant une variable et avec un clic-droit choisir l'option "Nouvel espion" (New watch) dans le menu contextuel qui s'affiche ou par clavier : Ctrl+Maj+F7,

et finalement lancer le débugger dans le Menu "exécuter" (Run) puis "Exécution pas à pas" (Debug Main Project) ou par clavier : Ctrl+F5.

Au moment du débug NetBeans communique avec le service "xdebug" installé aux étapes 1 et 2 sous Apache, en utilisant les mêmes paramètres de connexion à distance, qu'on a déclaré sous PHP.INI. Je rappelle :

Code : Tout sélectionner

; Accès distant au serveur xdebug xdebug.remote_enable=1 xdebug.remote_host="127.0.0.1" xdebug.remote_port=9000
Si la communication avec xdebug ne peut être établie NetBeans vous le dira par un message d'avertissement. Dans ce cas il faut revoir l'installation, le paramétrage et surtout redémarrer Apache après toute modification de php.ini.
Modifié en dernier par sadeq le 10 déc. 2008, 19:52, modifié 1 fois.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Petit nouveau ! | 2 Messages

07 juil. 2008, 15:17

Bonjour,

merci pour le tutorial.

J'ai un souci à faire tourner le débuggage sous Netbeans (je suis sous Wamp aussi).
Dans la fenêtre de commande de debugclient-0.9.0.exe, j'ai bien :

Code : Tout sélectionner

Xdebug Simple DBGp client (0.9.0) Copyright 2002-2004 by Derick Rethans. Waiting for debug server to connect. Connect
mais la page ne s'affiche pas sur http://localhost:9000. Il est écrit "ouverture de la page", mais ça n'aboutit pas.

Dans PHP info, j'ai bien l'extension Xdebug chargée.

Merci pour toute aide...

Karl3i.







Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

07 juil. 2008, 18:50

T'as pas besoin du client debugclient-0.9.0.exe ni de naviguer sur http://localhost:9000 pour débugger ton programme PHP sous NetBeens.

Une fois l'extension Xdebug chargée et paramétrée sous Wamp, tu dois débugger sous NetBeens en ouvrant ton projet PHP et lancer la commande "Exécution pas à pas" (Debug Main Project) dans le Menu "exécuter" (Run) ou par clavier : Ctrl+F5

Quand tu lance l'exécution pas à pas Netbeens lance automatiquement son client debug et cherche le serveur Xdebug sous localhost port 9000 et affiche l'état de la connexion dans une fenêtre en bas à droite de l'IDE.

Tu dois poser des points d'arrêt (breakpoints) sur les lignes où tu veux arrêter l'exécution. Netbeens s'y arrêtera automatiquement.
Modifié en dernier par sadeq le 08 juil. 2008, 13:52, modifié 1 fois.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Petit nouveau ! | 2 Messages

08 juil. 2008, 09:44

Merci pour ta réponse.

L'erreur que j'avais faite en plus de celle que tu as signalée : dans les propriétés du projet Netbeans, j'avais mis l'URL http://localhost:9000, alors que c'est http://localhost.

J'ai pu faire du débuggage sur la page index de Wamp. C'est effectivement un régal :).

Petit nouveau ! | 2 Messages

02 oct. 2008, 01:48

Bonjour ,

J'ai installé wamp , mis mon dossier wordpress dans le dossier www de Wamp,
créer un nouveau projet dans netbeans et associer les donnees du dossier du site cependant Je n'arrive pas à configurer l'onglet Genéral et l'onglet php, j'ai rentré http://localhost et comme interpreteur php wampserver.exe Merci de me répondre d'autre part faut il créer une table avant de creer un repertoire de site dans le dossier www?

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

09 oct. 2008, 15:21

Bonjour ,
j'ai rentré http://localhost et comme interpreteur php wampserver.exe
L'interpréteur de php est PHP.EXE et non wampserver.exe.

Si tu as la version WampServer Version 2.0, php.exe se trouve dans le dossier : C:\wamp\bin\php\php5.2.6
Mais si tu as les versions avant WampServer Version 2.0, php.exe se trouve dans le dossier : C:\wamp\php
d'autre part faut il créer une table avant de creer un repertoire de site dans le dossier www?
Si tu veux parler de l'installation de wordpress, il faut:
  • Copier le package wordpress dans c:\wamp\www\wordpress
    Créer une base de données nommée "wordpress" sous Mysql avec PHPmyAdmin avant de procédrer à l'installation de wordpress via le site.
    Naviguer vers le site wordpress en tapant : http://localhost/wordpress
    Suivre les instruction de l'assistant d'installation de wordpress.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Petit nouveau ! | 1 Messages

12 nov. 2008, 15:56

Bonjour,

Comment ne pas faire s'arrêter le debugger au début de chaque page parcouru mais seulement sur un point d'arrêt.
J'ai une version de Netbeans 6.5RC1 et xdebug v2.0.3.

Merci de vos réponses.

Ianrehd

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

12 nov. 2008, 21:02

Bonsoir,
Comme j'avais expliqué, tu places ton point d'arrêt sur l'instruction que tu veux observer et tu déclenche l'opération : "Debug" qui se trouve dans le menu "Debug" (par clavier: Ctrl+F5).
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

hannao
Invité n'ayant pas de compte PHPfrance

02 mai 2009, 22:01

salut,

j'ai bien suivi comment on installe php_xdebug avec la création des fichiers dans wamp la modification du php.ini etc , ........ Mais lorsque je fais un phpinfo() il n' y parait toujours pas. Comment vérifier si il est installé ?
Je veux le mettre en relation avec netbeans

Vista
wampserver:2
php :5.2.6
apache :2.2.8
neztbeans :6.5

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

03 mai 2009, 20:40

Vérifie que tu as téléchargé le fichier DLL de l'extension xdebug correspondant à la version PHP que tu utilise, puis de la placer dans le dossier indiqué par la clause zend_extension de la config PHP.ini

Code : Tout sélectionner

; Extension du serveur xdebug zend_extension_ts="C:/wamp/xdebug/ext/php_xdebug.dll"
Ici, on a nommé le fichier DLL "php_xdebug.dll" et placé dans le dossier "C:/wamp/xdebug/ext/" qu'on a créé au préalable.

Pour télécharger l'extension xdebug regarde ici: http://www.xdebug.org/download.php
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Invité
Invité n'ayant pas de compte PHPfrance

04 mai 2009, 10:03

ça y est j'ai réglé le problème, ça marche enfin si l'on veyt car j'ai beau mettre des braekpoint cela ne change rien le code continue a s'executer. je peux faire du pas à pas mais en tout cas le script est lu jusqu'à ça fin.
Vous avez une idée sous netbeans ?

Eléphanteau du PHP | 30 Messages

05 mai 2009, 20:25

désolé pour l'orthographe je suis allé un peu vite et me suis pas relu.