« SPARQL Protocol and RDF Query Language/Travail pratique/Initiation à Eclipse » : différence entre les versions
m Robot : Changement de type cosmétique |
|||
Ligne 250 : | Ligne 250 : | ||
== Configurer le débugguage == |
== Configurer le débugguage == |
||
=== Indiquer le serveur utiliser pour débugger === |
|||
Nous utiliserons le serveur Web que nous avons installé dans un précédent TP pour débuguer notre projet. |
Nous utiliserons le serveur Web que nous avons installé dans un précédent TP pour débuguer notre projet. |
||
Ligne 265 : | Ligne 265 : | ||
#Cliquer sur OK jusqu'à ce que toutes les boites de dialogues soient fermées |
#Cliquer sur OK jusqu'à ce que toutes les boites de dialogues soient fermées |
||
=== Indiquer le débuggeur === |
|||
# Via le Menu : Window > Preferences |
# Via le Menu : Window > Preferences |
||
# Aller dans le Menu : Window > Preferences |
# Aller dans le Menu : Window > Preferences |
Version du 26 novembre 2011 à 09:08
Introduction
Pourquoi utiliser Eclipse ?
Dans ce TP, nous allons installer Eclipse ainsi que certains composants de [[w:Débogueur|débuggage]. Eclipse est l'un des logiciels les plus utilisés pour faire du développement Web et il est gratuit. Malheureusement, ça puissance est inversement proportionnel à son ergonomie d'utilisation. Il faut un certain temps d'utilisation pour savoir correctement l'utiliser.
Ce TP a pour objectif de vous en montrer les avantages mais aussi de vous faire gagner du temps sur l'installation du débuggeur qui est indispensable à tous vrais développeurs professionnels pour gagner beaucoup de temps.
Durée du TP
2 heures
Matériel du TP
Il vous faut avoir fait au moins le TP PHP.
A savoir pour commencer
Il n’y a que 2 débuggeurs pour PHP :
- Zend qui est intégré dans la suite de développement payante Zend (à condition d’avoir les serveurs de productions également avec Zend sinon...bugs d’incompatibilités à prévoir)
- XDebug qui est gratuit mais qui est moins simple à installer
Nous installerons donc XDebug car les étudiants ont un budget relativement limité pour ce genre de dépense.
Documentations
Ce TP a été fabriqué avec les documents suivants :
Installation
Débuggeur : XDebug
Il y a autant de manières d'installer XDebug qu'il y a de version de Linux.
Pour identifier, si l'installation suivante peut fonctionner avec votre version de linux, vous devez d'abord connaitre la version que vous utilisez avec la commande suivante.
lsb_release -a
L'installation suivante sera faite avec la version Ubuntu 10.04.3. Si ce n'est pas votre version n'hésitez pas à comparer cette installation avec les résultats dans Google quand vous recherchez :le nom de votre distribution linux avec sa version et Xdebug.
Ubuntu 10.04.3
Installer le composant php5-xdebug.
sudo apt-get install php5-xdebug
Ouvrez le fichier : /etc/php5/conf.d/xdebug.ini
sudo vim /etc/php5/conf.d/xdebug.ini
Ajouter à la fin de ce fichier les lignes suivantes:
; configuration for php xdebug module
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
Mettre à jour votre configuration :
sudo service apache2 reload
Vérifier que XDebug est bien activé dans votre configuration PHP.
php -r 'phpinfo();' | grep -e "xdebug support => enabled"
Si vous avez un soucis, il y a de forte chance que quelqu'un d'autre a déjà eu votre problème. N'hésitez pas à chercher la solution via Google ou demander de l'aide sur les forums de développeurs PHP.
Java Runtime Environment
Il n'est pas conseillé d'installer Eclipse via apt-get, il faut installer le JRE (Java Runtime Environment) séparément.
Installer le JRE (Java Runtime Environment) dont Eclipse a besoin :
sudo apt-get install default-jre
Verifier si votre version de JRE est 32 ou 34 bits :
java -d64 -version
ou
java -d32 -version
Il est possible que votre PC a un processeur 64 bits mais que votre version de JRE soit de 32 bits. Cela n’empêchera pas Eclipse 32bits de fonctionner.
Si vous voulez cependant installer un JRE 64 bits, vous devrez probablement l'installer manuellement.
Eclipse
En fonction de la version de votre JRE 32 ou 64bits, vous choisirez la dernière version de "Eclipse platformRuntime" x86 ou x86_64 : (ce lien est celui donné par la documention Eclipse de août 2011)
Nous installerons Eclipse dans votre répertoire personnel :
mkdir ~/opt
On passe dans le répertoire où votre navigateur à enregistrer le package Eclipse, on le décompresse et on le déplace dans le répertoire ~/opt.
cd {directory where your browser downloaded the package to}
tar -zxvf eclipse-SDK-3.4.1-linux-gtk.tar.gz
mv eclipse ~/opt
On fabrique répertoire bin dans notre repertoire home qui sera utilisé pour lancer Eclipse :
mkdir ~/bin
On crée le fichier qui sera le script d'exécution d'Eclipse :
vim ~/bin/eclipse
Copier ce texte dans ce fichier :
export MOZILLA_FIVE_HOME="/usr/lib/mozilla/"
export ECLIPSE_HOME="$HOME/opt/eclipse"
$ECLIPSE_HOME/eclipse $*
On autorise le script à être exécuté :
chmod +x ~/bin/eclipse
Pour finir, on va créer un raccourcie pour le mettre sur notre bureau :
- Cliquer bouton droit sur votre bureau
- Créer raccourcie (ou create launcher)
- Indiquer le nom : Eclipse
- Indiquer le chemin du script (command) : /home/<your username>/opt/eclipse/eclipse
- Cliquer sur l'icône pour indiquer le chemin du script de l'icône d'Eclipse : /home/<your username>/opt/eclipse/eclipse/icon.xpm
- cliquer sur OK
Vous pouvez maintenant double cliquer sur l'icone Eclipse sur votre bureau.
Eclipse s'ouvre et vous demande de préciser votre espace de travail, indiquer un autre répertoire que ~/projets. Cela évite un certain nombre de problèmes de configuration.
Configurer la source des mises-à-jour et des plugins d'Eclipse
Dans Eclipse :
- Aller dans le menu : Help > Install New Software
- cliquer que le bouton "Add..."
- renseigner les champs avec le nom : Indigo et l'adresse http://download.eclipse.org/releases/indigo
Vous pouvez maintenant installer les plugins PHP et Web.
Installer le plugin PHP
Dans Eclipse :
- Aller dans le menu : Help > Install New Software
- Choisir le site (Work with) : "Indigo -- http://download.eclipse.org/releases/
- attendre que la liste soit mise à jour (pending...)
- aller ensuite dans langages de programmation
- cocher la liste PHP Development Tools (PDT)
- Cliquer sur suivant deux fois
- cocher Accepter les licences
- cliquer sur terminer
Après l'installation, Eclipse vous demande de redémarrer :
- cliquer sur "redémarrer maintenant"
Installer le plugin Web
- Aller dans le menu : Help > Install New Software
- Choisir le site (Work with) : "Indigo -- http://download.eclipse.org/releases/
- attendre que la liste soit mise à jour (pending...)
- aller ensuite dans "Web,XML,JavaEE..."
- cocher "Eclipse Web Developer Tools"
- Cliquer sur suivant deux fois
- cocher Accepter les licences
- cliquer sur terminer
Après l'installation, Eclipse vous demande de redémarrer :
- cliquer sur "redémarrer maintenant"
Ouvrir votre projet PHP dans Eclipse
Nous avons dans le projet précédent utilisé PHPUnit et créer une arborescence à un projet nommé MonCV. Nous allons ouvrir ce projet et le configurer.
- Ouvrir Eclipse
- Menu Fichier > Nouveau projet
- Ouvrer PHP > projet PHP
La boite de dialogue nouveau projet s'ouvre.
- Donner un nom au projet : MonCv
- Cocher : Créer un projet de sources existantes
- Rechercher la racine du répertoire créer dans le TP précédent : ~/projets/moncv
- cliquer sur Terminer (Finish)
Configurer la construction du projet
Nous allons utiliser phing pour construire le projet automatiquement pour permettre de le débugger.
A chaque modification d'un fichier dans le projet, le script build.xml sera exécute pour les tests unitaires et déployer sur le serveur Web (/var/www/moncv) que nous avons configuré dans un précédent TP.
Pour ce faire :
- Faire un clic droit sur le projet
- sélectionner Propriétés
- sélectionner "Constructeurs"(builder)
- cliquer sur Nouveau pour afficher la boîte de dialogue "Choisir le type de configuration"
- sélectionner Programme
- Cliquer sur OK
La boîte de dialogue pour créer une configuration s'est affichée :
- Donner un nom par exemple : Phing build.xml
- Donner l'emplacement de l'exécutable (Location) : /usr/bin/phing
- Donner l'emplacement d’exécution (Working directory) :
- Cliquer sur le bouton Browse WorkSpace
- Sélectionner la racine où se trouve le fichier build.xml, ici MonCV
- Cliquer sur OK
L'emplacement d’exécution (Working directory) doit contenir quelque chose qui ressemble à :
${workspace_loc:/MonCv}
Maintenant on indique les moments d’exécution :
- Aller dans l'onglet Rafraichir (Refresh)
- Cocher la case rafraichir les ressources (Refresh ressouces upon each completion)
- Cocher : Espace de travail en entier (The entire Workspace)
- Aller maintenant dans l'onglet Options (Build Options)
- Cocher l'auto-construction (During auto-build)
Cliquer finalement sur le bouton OK pour refermer la boite de dialogue.
Configurer le débugguage
Indiquer le serveur utiliser pour débugger
Nous utiliserons le serveur Web que nous avons installé dans un précédent TP pour débuguer notre projet.
- Via le Menu : Window > Preferences
- Ouvrir le noeud : PHP > PHP Servers
- Créer un nouveau serveur : MonCV
- Donner son domaine (base url): http://moncv
- Donner la racine sur le disque du service Web (local Web root): /var/www/moncv
- Aller dans l'onglet Mapping
- Faire nouveau
- Dans chemin sur le serveur mettre : /var/www/moncv
- Cocher chemin dans l'espace de travail
- Trouver la racine des sources c'est-à-dire le répertoire src. Vous devez avoir comme résultat : MonCV/src
- Cliquer sur OK jusqu'à ce que toutes les boites de dialogues soient fermées
Indiquer le débuggeur
- Via le Menu : Window > Preferences
- Aller dans le Menu : Window > Preferences
- Cliquer sur le noeud : PHP > Debug
- Dans la liste "PHP Debugger" choisir "XDebug“
- Cliquer sur appliquer (Apply)
- Cliquer sur OK pour fermer la fenêtre
Débugguer une page Web
Créer une page web
Nous allons créer une page PHP dans le répertoire src :
- Cliquer bouton droit sur le répertoire src dans Eclipse
- Nouveau > PHP File
- Indiquer comme nom de fichier : index.php
Insérer le texte suivant dans le fichier :
<?php
phpinfo();
Sauvegarder en faisant dans le Menu : File > Save (ou Ctrl + s )
Insérer un point d'arrêt
Un point d'arrêt est un point placé à un endroit spécifique d'un programme qui permet d'indiquer à un débogueur d'arrêter l'exécution lorsqu'il atteindra cet endroit.
C'est très pratique pour voir à cet endroit la valeur des variables ou encore pour commencer à faire du pas à pas dans le code. Le pas à pas permet d'avancer dans le code "commande par commande". Le pas à pas permet de voir exactement ce qui exécuter par le programme.
Pour insérer un point d'arrêt, il suffit de double cliquer sur le numéro de ligne où vous souhaitez que le programme s'arrête. Un point bleu doit apparaitre dans la marge ce qui indique le point d'arrêt.
Exercice : double cliquer sur le numéro de ligne où la fonction phpinfo se trouve. Ce point d'arrêt nous sera utile dans l'exercice suivant.
Créer un profil de débuggeur
Un site Web est composé de plusieurs fichiers PHP qui peuvent être autant de point d'entrée dans votre site. Si vous débuguer une page php particulière, il vous faudra créer un profil de débuggage pour cette page. A chaque fois que vous voudrez débugger une page, vous pourrez réutiliser le profil de cette page que vous avez créé.
Nous allons créer un profil de débuggage pour la page index.php.
- Via le Menu : Run > Debug configurations
- Cliquer bouton droit sur PHP Web Page
- Dans le menu contextuel choisir Nouveau
- Donner un nom : index.php
- Indiquer le fichier PHP à executer en cliquant sur le bouton chemin et trouver le fichier index.php (ce qui doit donner : /MonCv/src/index.php)
- Décocher : Break at first line (sinon le débuggeur s'arrêtera dès la première ligne)
- Décocher Auto-generate pour indiquer manuellement l'url index.php sur le serveur
- Modifier l'URL /MonCv/src/index.php en laissant juste index.php
- Cliquer sur appliquer (Apply) pour sauver
- Cliquer sur fermer (close)
Si la configuration de XDebug s'est bien passée, vous devez lire devant server Debugger : XDebug et devant PHP server : moncv. Si ce n'est pas le cas, indiquez XDebug et le serveur moncv
débugger
Eclipse a plusieurs modes d'affichage. Il y en a un pour PHP et un pour Débugger. Eclipse vous demandera souvent de passer d'un mode à un autre automatiquement.
Pour revenir manuellement à un de ces modes, vous pouvez faire menu : Window > Open Perspective > PHP ou Debug.
Un bug en anglais signifie insecte ou encore une erreur dans du code informatique. C'est la raison pour laquelle dans Eclipse tout ce qui touche au mode Debug est représenté par un insecte.
Nous allons lancer le débugage
- En haut de l'écran (dans la toolbar), il y a un insecte avec un triangle, cliquer sur le triangle
- choisir index.php qui est le profil que nous avons créé.
- Eclipse vous propose de passer en mode Debug : accepter
Vous pouvez voir maintenant (si tout c'est bien passé) :
- Zone Debug (en haut à gauche) un carré rouge qui vous permet d'arrêter le débugage
- Zone Debug (en haut à gauche) un triangle vert qui vous permet de poursuivre l’exécution
- Zone Debug (en haut à gauche) des flèches jaune qui vous permettent de faire du pas à pas de différents types
- Zone Fichier (au milieu à gauche) vous voyez le fichier avec une flèche bleu
- Zone navigateur (en bas), c'est le navigateur par défaut (qu'on peut modifier dans les préférences) où vous pouvez voir le résultat de l'exécution c'est-à-dire une page web.
Vous découvrirez en jouant avec éclipse les milles et une fonction disponible.
Vous avez maintenant l'environnement de développement qui va nous permettre de développer un service Web mais surtout de suivre la leçon sur SPARQL.
Débugger sans environnement de développement
Il faut savoir que la Loi de Murphy s'applique aussi en informatique et qu'il vous faut savoir débugger ou analyser un problème même sans Eclipse.
Vous pouvez afficher des erreurs survenant dans une page directement dans le résultat HTML de cette page en rajoutant le code suivant dans les premières lignes du programme. (à retirer du programme ensuite)
if (!ini_get('display_errors')) {
ini_set('display_errors', 1);
}
echo ini_get('display_errors');
Vous pouvez aussi modifier ce paramètre d'affichage directement dans le fichier php.ini (rarement possible chez des hébergeurs PHP)
Modifier le fichier php.ini :
error_reporting = E_ALL & ~E_NOTICE
display_errors = On
Rappel, on trouve le fichier php.ini via la commande php --ini
Pour finir la méthode la plus simple durant un débuggage à l'aveugle avec un serveur et d'ouvrir une console pour voir les logs d'erreurs d'Apache.
Utiliser la commande suivante pour faire défiler les logs en temps réel :
sudo tail –f /var/log/apache2/error.log