Debugger en PHP

2 vues
28 octobre 2011
Jérémie
debogage

 

A ce jour, beaucoup trop nombreux sont les développeurs qui debuggent en PHP à coups d'echo et de var_dump(). Ces méthodes sont révolues et doivent être reléguées au placard. Débugger en PHP se fait aujourd'hui avec un debugger PHP digne de ce nom qui vous permet de debugger pas à pas votre code PHP, de tester certaines expressions, d'afficher la valeur de variables locales, etc.

Oui mais c'est compliqué/long/cher =>FAUX! Comme dirait ce cher Norman

C'est simple, plutôt rapide et gratuit, comme le montre ce tutoriel:

 

Je vais détailler ici le cas d'installation d'un environnement de debuggage PHP sous Windows.

 

1- Eclipse PDT

Comme proposé sur ce lien, vous téléchargez Eclipse PDT qui sera votre IDE PHP. Une fois le zip téléchargé, vous dézippez simplement ce zip dans le répertoire de votre choix où vous voulez installer Eclipse (pour moi C:\Program Files\eclipse). Il est recommandé de se faire un lien sur son bureau vers eclipse.exe pour faciliter son utilisation et pouvoir debugger à tout instant.

 

2- Zend Server

Toujours sur ce même lien ou sur celui-ci vous téléchargez Zend Server CE, qui sera votre serveur de debug. Le fichier téléchargé est un .exe, vous double-cliquez donc et suivez les fenêtres d'installation en choisissant les options par défaut.(Mon répertoire d'installation est:C:\Program Files\Zend, nous nommerons dans la suite de ce tutoriel ce répertoire YOUR_ZEND_DIRECTORY).

Après avoir cliqué sur l'onglet finish, vous arrivez sur la page web http://localhost:10081/ZendServer/Login#1319966331281.

Vous acceptez la licence, saisissez le mot de passe de votre choix, et vous inscrivez ou non à la newsletter.

Si vous souhaitez travailler sur un projet existant, vous copiez les codes sources de votre projet dans le répertoire YOUR_ZEND_DIRECTORY\Apache2\htdocs.

 

3- Création du projet PHP

Vous ouvrez ensuite Eclipse en double cliquant sur eclipse.exe. Vous choisissez un répertoire de workspace et cliquez sur File>New>PHP Project.

Vous renseignez le nom du projet PHP, et s'il s'agit d'un projet existant, cliquez sur "Create new project at existing location", et allez chercher le répertoire de votre code source (dans l'exemple: C:\Program Files\Zend\Apache2\htdocs\zf-ndd).

Si ce projet PHP utilise une librairie, vous pouvez l'ajouter dans l'onglet Librairies en cliquant sur Add external source folder(si vous utilisez la librairie Zend pour plusieurs projets par exemple). Après avoir cliqué sur Finish vous voyez apparaître votre projet PHP dans l'explorateur de projet.

 

4- Configuration d'Eclipse

Il est temps de passer au debug!

Je sélectionne le fichier de mon choix (ici index.php) et clique sur Debug As /PHP Web Page.

Une fenêtre apparaît m'indiquant l'URL de debug qui va être lancée avec possibilité de modification.

Je clique sur OK. Une autre fenêtre apparaît me proposant d'associer le debug avec la perspective debug, je clique là-aussi sur OK en cochant la case "se souvenir de ma décision".(Cette perspective debug permet la visualisation des variables locales, de la saisie d'expressions, etc. qui facilitent le debuggage)

Je vois apparaître mon fichier avec possibilité de debugger pas à pas mon code.

En cas de "doute" Eclipse va m'ouvrir une fenêtre permettant de sélectionner le bon path mapping:

Je choisis le bon fichier et clique sur OK.

Le debug peut reprendre.

En cas d'erreur de saisie lors du path mapping, vous pouvez modifier ces paramètres en allant dans Run/Debug configurations.Cliquez sur PHP Web Page et cliquez sur la configuration à modifier. Dans la fenêtre qui apparaît cliquez sur "Configure" à côté de Default PHP Web Server et cliquez ensuite sur l'onglet "Path Mapping".

 

5- Et SQL?

Petite précision pour ceux qui utilisaient Wamp, Zend Serveur ne comprend pas mySQL, il vous faut donc l'installer et le configurer.

  1. Installer MySQL Server. Vous téléchargez la dernière version de mysql server sur le site de mySQL : le fichier téléchargé est un .exe que vous exécutez.(Je recommande l'installation en service Windows).
  2. Installer PhpMyAdmin: ne nous privons de la facilité de manipulation des données offerte par PhpMyAdmin. Vous téléchargez donc à cette adresse la dernière version de PhpMyAdmin, que vous dézippez à la racine de votre répertoire htdocs. Pour une configuration simple, vous recopiez simplement le fichier config.sample.inc.php en nommant le fichier obtenu config.inc.php, et vous renseignez la variable blowfish_secret.

 

Voilà, en espérant que ce tutoriel vous aidera à mettre en place un véritable environnement de debug PHP, tellement plus pratique pour debugger!

Pulsar developpe la passerelle Joomla LUCENE SOLR
PHP multi-versions sur le même Apache
Mon nouveau jeu de stratégie en ligne: Xsword
Journée du conseil scientifique de l'AFNIC
Réseau social d'entreprise: Yammer ou SharePoint?
SQL ignore error SQLSTATE avec sql-mode
Le forum PHP 2012....c'est du passé ! RDV l'année prochaine
Astuces PHP lazy load sous joomla seblod warp
Utiliser NOW() de SQL avec ZF
Soirée CMS open-source en PHP
Plugin merge css/js pour Joomla
Créer un QR Code en PHP
Eclipse: Failed to create Java Virtual Machine
Hover sur Slideshow avec jmpress.js
Ajout d’un suffixe aux tables des modèles
I love jQuery.ValidationEngine
Mettre son placeholder en couleur noire #000
Calcul dates à partir du numéro de semaine en PHP
RDV AFUP sur les bases de données relationnelles
Du code et des hommes. Stratégies de suivi de projet
Mise en place d'une API REST en PHP
Choisir son outil de gestion de projet web
Pulsar sort son jeu gratuit en ligne
Soirée design pattern et anti pattern en PHP
Connexion à Office 365 en PowerShell
CssJsCompress: page blanche, problème d'encodage
design-pattern et anti-pattern en PHP
Conversion d'un fichier CSV utf8
encoder en latin1
Le forum PHP c'est dans 2 semaines !
forum php 2014 : le retour de Drupal annoncé... vraiment ???
OWF: Open World Forum
The requested URL was not found on this server.
bug fireEvent dans core.js sous IE9
Maximum execution time ...
Autocomplétion avec Eclipse PDT
Modifier la config Apache pour un site sur PLESK
ZF : Cannot refresh row as parent is missing
Un nouveau routeur pour Joomla!
PHP Tour de Lille
3 nouvelles extensions Joomla! de Pulsar dans la JED
Code et calendrier de l'avent, un crossover sympa
Création de l'antenne parisienne de l'AFUP