« SPARQL Protocol and RDF Query Language/Travail pratique/Initiation à Eclipse » : différence entre les versions

Une page de Wikiversité, la communauté pédagogique libre.
Contenu supprimé Contenu ajouté
m Robot : Changement de type cosmétique
m Relecture
Ligne 1 : Ligne 1 :
{{Travail pratique présentation
{{ébauche informatique}}
| objectif1 = installer Eclipse

| objectif2 = installer XDebug
| objectif3 = faire du débogage pas à pas dans un site Web PHP avec Eclipse
| durée = 2 heures
| matériel1 = un serveur Web Linux avec PHP.
}}
<div style="float:right; padding: 0 0 0 1em;">__TOC__</div>
{{Travail pratique
{{Travail pratique
| titre = Initiation à Eclipse
| titre = Initiation à Eclipse
Ligne 9 : Ligne 15 :
| précédent = [[../Initiation à PHPUnit/]]
| précédent = [[../Initiation à PHPUnit/]]
| suivant = [[../Faire un serveur SPARQL/]]
| suivant = [[../Faire un serveur SPARQL/]]
| niveau = ?
| niveau = 0
}}
}}


== Pourquoi utiliser Eclipse ? ==
== Introduction ==
Dans ce TP, nous allons installer Eclipse, ainsi que certains composants de [[w:Débogueur|débuggage]].<br/>
=== Pourquoi utiliser Eclipse ? ===
Eclipse est l'un des logiciels les plus utilisés pour faire du développement Web et il est gratuit.<br/>
Dans ce TP, nous allons installer Eclipse ainsi que certains composants de [[w:Débogueur|débuggage].
Malheureusement, sa puissance est inversement proportionnelle à son ergonomie. Il faut un certain temps pour arriver à l'utiliser correctement.
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.


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 à tout vrai développeur professionnel.
=== A savoir avant de commencer ===
== A savoir avant de commencer ==
=== Les débogueurs PHP ===
Il n’y a que 2 débogueurs pour PHP :
Il n’y a que 2 débogueurs 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)
*Zend, qui est intégré à la suite de développement payante Zend (à condition de disposer des serveurs de production également avec Zend sinon... bugs d’incompatibilités à prévoir)
*XDebug qui est gratuit mais qui est moins simple à installer
*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.
Nous installerons donc XDebug, car les étudiants ont un budget relativement limité pour ce genre de dépenses.


=== Documentations ===
=== Documentations ===
Ligne 46 : Ligne 44 :
Il y a autant de manières d'installer XDebug qu'il y a de version de Linux.
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 connaître la version que vous utilisez avec la commande suivante.
Pour identifier si l'installation suivante peut fonctionner avec votre version de Linux, vous devez d'abord connaître la version que vous utilisez, avec la commande suivante.
<source lang="bash">
<source lang="bash">
lsb_release -a
lsb_release -a
</source>
</source>


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 .
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 fournis par un moteur de recherche quand vous recherchez le nom de votre distribution Linux avec sa version et XDebug.


==== Ubuntu 10.04.3 ====
==== Ubuntu 10.04.3 ====
Installer le composant php5-xdebug.
Installez le composant php5-xdebug.
<source lang="bash">
<source lang="bash">
sudo apt-get install php5-xdebug
sudo apt-get install php5-xdebug
Ligne 64 : Ligne 62 :
</source>
</source>


Ajouter à la fin de ce fichier les lignes suivantes:
Ajoutez à la fin de ce fichier les lignes suivantes :
<source lang="text">
<source lang="text">
; configuration for php xdebug module
; configuration for php xdebug module
Ligne 74 : Ligne 72 :
</source>
</source>


Mettre à jour votre configuration :
Mettez à jour votre configuration.
<source lang="bash">
<source lang="bash">
sudo service apache2 reload
sudo service apache2 reload
</source>
</source>


Vérifier que XDebug est bien activé dans votre configuration PHP.
Vérifiez que XDebug est bien activé dans votre configuration PHP.
<source lang="bash">
<source lang="bash">
php -r 'phpinfo();' | grep -e "xdebug support => enabled"
php -r 'phpinfo();' | grep -e "xdebug support => enabled"
</source>
</source>
{{remarque|contenu=
{{remarque|contenu=
Si vous avez un soucis, il y a de forte chance que quelqu'un d'autre a déjà eu votre problème.
Si vous avez un souci, il y a de fortes chances que quelqu'un d'autre ait déjà rencontré le même problème. <br/>
N'hésitez pas à chercher la solution via Google ou demander de l'aide sur les forums de développeurs PHP.
N'hésitez pas à chercher la solution via un moteur de recherche ou à demander de l'aide sur les forums de développeurs PHP.
}}
}}


Ligne 96 : Ligne 94 :
</source>
</source>


Verifier si votre version de JRE est 32 ou 34 bits :
Vérifiez si votre version de JRE est 32 ou 64 bits :
<source lang="bash">
<source lang="bash">
java -d64 -version
java -d64 -version
Ligne 106 : Ligne 104 :


{{remarque|contenu=
{{remarque|contenu=
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.
Il est possible que votre PC ait un processeur 64 bits, mais que votre version de JRE soit 32 bits. Cela n’empêchera pas Eclipse 32 bits de fonctionner.


Si vous voulez cependant installer un JRE 64 bits, vous devrez probablement l'installer manuellement.
Si vous voulez cependant installer un JRE 64 bits, vous devrez probablement l'installer manuellement.
Ligne 112 : Ligne 110 :


=== Eclipse ===
=== 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 [http://wiki.eclipse.org/PDT/Installation#From_Update_Site documention Eclipse de août 2011])
En fonction de la version de votre JRE, 32 ou 64 bits, vous choisirez la dernière version de "Eclipse platformRuntime" x86 ou x86_64 : (Ce lien est celui donné par la : [http://wiki.eclipse.org/PDT/Installation#From_Update_Site documentation Eclipse d’août 2011])
* http://download.eclipse.org/eclipse/downloads/drops/R-3.7-201106131736/index.php#PlatformRuntime
* http://download.eclipse.org/eclipse/downloads/drops/R-3.7-201106131736/index.php#PlatformRuntime


Ligne 121 : Ligne 119 :
</source>
</source>


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.
On passe dans le répertoire où votre navigateur a enregistré le package Eclipse, on le décompresse et on le déplace dans le répertoire ~/opt.
<source lang="bash">
<source lang="bash">
cd {directory where your browser downloaded the package to}
cd {directory where your browser downloaded the package to}
Ligne 128 : Ligne 126 :
</source>
</source>


On fabrique le répertoire bin dans notre répertoire home qui sera utilisé pour lancer Eclipse :
On fabrique le répertoire bin dans notre répertoire home, qui sera utilisé pour lancer Eclipse :
<source lang="bash">
<source lang="bash">
mkdir ~/bin
mkdir ~/bin
Ligne 138 : Ligne 136 :
</source>
</source>


Copier ce texte dans ce fichier :
Copiez ce texte dans ce fichier :
<source lang="text">
<source lang="text">
export MOZILLA_FIVE_HOME="/usr/lib/mozilla/"
export MOZILLA_FIVE_HOME="/usr/lib/mozilla/"
Ligne 151 : Ligne 149 :
</source>
</source>


Pour finir, on va créer un raccourcie pour le mettre sur notre bureau :
Pour finir, on va créer un raccourci pour le mettre sur notre bureau :
#cliquer bouton droit sur votre bureau
#clic droit sur votre bureau
#créer raccourcie (ou create launcher)
#créer un raccourci (ou create launcher)
#indiquer le nom : Eclipse
#indiquer le nom : Eclipse
#indiquer le chemin du script (command) : /home/<your username>/opt/eclipse/eclipse
#indiquer le chemin du script (command) : /home/<your username>/opt/eclipse/eclipse
Ligne 163 : Ligne 161 :
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.
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 ===
=== Configurer la source des mises à jour et des plug-ins d'Eclipse ===
Dans Eclipse :
Dans Eclipse :
# Aller dans le menu : Help > Install New Software.
# aller dans le menu : Help > Install New Software.
# cliquer que le bouton "Add...".
# cliquer que le bouton "Add...".
# renseigner les champs avec le nom : Indigo et l'adresse http://download.eclipse.org/releases/indigo.
# 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.
Vous pouvez maintenant installer les plug-ins PHP et Web.


=== Installer le plugin PHP ===
=== Installer le plug-in PHP ===


Dans Eclipse :
Dans Eclipse :
#Aller dans le menu : Help > Install New Software.
#Aller dans le menu : Help > Install New Software.
#Choisir le site (Work with) : "Indigo -- http://download.eclipse.org/releases/.
#Choisir le site (Work with) : "Indigo -- http://download.eclipse.org/releases/".
#Attendre que la liste soit mise à jour (attendez que le mot pending disparaisse...).
#Attendre que la liste soit mise à jour (attendez que le mot pending disparaisse).
#Aller ensuite dans langages de programmation.
#Aller ensuite dans langages de programmation.
#Cocher la liste PHP Development Tools (PDT).
#Cocher la liste PHP Development Tools (PDT).
#Cliquer sur suivant deux fois.
#Cliquer sur Suivant deux fois.
#Cocher Accepter les licences.
#Cocher Accepter les licences.
#Cliquer sur terminer.
#Cliquer sur Terminer.


Après l'installation, Eclipse vous demande de redémarrer :
Après l'installation, Eclipse vous demande de redémarrer :
* cliquer sur "redémarrer maintenant"
* cliquer sur "redémarrer maintenant"


=== Installer le plugin Web ===
=== Installer le plug-in Web ===


# Aller dans le menu : Help > Install New Software .
# aller dans le menu : Help > Install New Software .
# Choisir le site (Work with) : "Indigo -- http://download.eclipse.org/releases/ .
# Choisir le site (Work with) : "Indigo -- http://download.eclipse.org/releases/" .
# Attendre que la liste soit mise à jour (attendez que le mot pending disparaisse...).
# Attendre que la liste soit mise à jour (attendez que le mot pending disparaisse).
# Aller ensuite dans "Web,XML,JavaEE...".
# Aller ensuite dans "Web, XML, JavaEE...".
# Cocher "Eclipse Web Developer Tools".
# Cocher "Eclipse Web Developer Tools".
# Cliquer sur suivant deux fois.
# Cliquer sur Suivant deux fois.
# Cocher Accepter les licences.
# Cocher Accepter les licences.
# Cliquer sur terminer.
# Cliquer sur Terminer.


Après l'installation, Eclipse vous demande de redémarrer :
Après l'installation, Eclipse vous demande de redémarrer :
* Cliquer sur "redémarrer maintenant".
* Cliquer sur "Redémarrer maintenant".


== Ouvrir votre projet PHP dans Eclipse ==
== Ouvrir votre projet PHP dans Eclipse ==
Nous avons dans le projet précédent utilisé PHPUnit et créé l'arborescence de fichier du projet nommé MonCV.
Nous avons, dans le projet précédent, utilisé PHPUnit et créé l'arborescence de fichier du projet nommé MonCV.
Nous allons ouvrir ce projet et le configurer.
Nous allons ouvrir ce projet et le configurer.


Ligne 208 : Ligne 206 :
#Ouvrer PHP > projet PHP.
#Ouvrer PHP > projet PHP.


La boite de dialogue nouveau projet s'ouvre.
La boîte de dialogue "Nouveau projet" s'ouvre.
#Donner un nom au projet : MonCv.
#Donner un nom au projet : MonCv.
#Cocher : créer un projet de sources existantes.
#Cocher : Créer un projet de sources existantes.
#Rechercher la racine du répertoire créer dans le TP précédent : ~/projets/moncv .
#Rechercher la racine du répertoire créé dans le TP précédent : ~/projets/moncv .
#cliquer sur Terminer (Finish).
#cliquer sur Terminer (Finish).


== Configurer la construction du projet ==
== Configurer la construction du projet ==
Nous allons utiliser phing pour construire le projet automatiquement pour permettre de le débugger.
Nous allons utiliser Phing pour construire le projet automatiquement afin de 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.
A chaque modification d'un fichier dans le projet, le script build.xml sera exécuté pour les tests unitaires et déployé sur le serveur Web (/var/www/moncv) que nous avons configuré dans un précédent TP.


Pour ce faire :
Pour ce faire :
#Faire un clic droit sur ​​le projet
#Faire un clic droit sur ​​le projet
#sélectionner Propriétés
#sélectionner Propriétés
#sélectionner "Constructeurs"(builder)
#sélectionner Constructeurs(builder)
#cliquer sur Nouveau pour afficher la boîte de dialogue "Choisir le type de configuration"
#cliquer sur Nouveau pour afficher la boîte de dialogue "Choisir le type de configuration"
#sélectionner Programme
#sélectionner Programme
Ligne 228 : Ligne 226 :


La boîte de dialogue pour créer une configuration s'est affichée :
La boîte de dialogue pour créer une configuration s'est affichée :
#Donner un nom par exemple : Phing build.xml
#Donner un nom, par exemple : Phing build.xml
#Donner l'emplacement de l'exécutable (Location) : /usr/bin/phing
#Indiquer l'emplacement de l'exécutable (Location) : /usr/bin/phing
#Donner l'emplacement d’exécution (Working directory) :
#Indiquer l'emplacement d’exécution (Working directory) :
##Cliquer sur le bouton Browse WorkSpace
##Cliquer sur le bouton Browse WorkSpace
##Sélectionner la racine où se trouve le fichier build.xml, ici MonCV
##Sélectionner la racine où se trouve le fichier build.xml, ici MonCV
Ligne 241 : Ligne 239 :


Maintenant, on indique les moments d’exécution :
Maintenant, on indique les moments d’exécution :
#Aller dans l'onglet Rafraîchir (Refresh)
#Aller dans l'onglet Rafraîchir (Refresh).
#Cocher la case rafraîchir les ressources (Refresh ressouces upon each completion)
#Cocher la case "Rafraîchir les ressources" (Refresh resources upon each completion).
#Cocher : Espace de travail en entier (The entire Workspace)
#Cocher "Espace de travail en entier" (The entire Workspace).
#Aller maintenant dans l'onglet Options (Build Options)
#Aller dans l'onglet Options (Build Options).
#Cocher l'auto-construction (During auto-build)
#Cocher l'auto-construction (During auto-build).


Cliquer finalement sur le bouton OK pour refermer la boite de dialogue.
Cliquer finalement sur le bouton OK pour refermer la boîte de dialogue.


== Configurer le débogueur ==
== Configurer le débogueur ==
=== Indiquer le serveur utiliser pour débugger ===
=== Indiquer le serveur utilisé pour débugger ===
Nous utiliserons le serveur Web que nous avons installé dans un précédent TP pour déboguer notre projet.
Nous utiliserons le serveur Web que nous avons installé dans un précédent TP pour déboguer notre projet.


#Via le Menu : Window > Preferences
#Via le menu : Window > Preferences
#Ouvrir le noeud : PHP > PHP Servers
#Ouvrir le noeud : PHP > PHP Servers
#Créer un nouveau serveur : MonCV
#Créer un nouveau serveur : MonCV
#Donner son domaine (base url): http://moncv
#Donner son domaine (base url) : http://moncv
#Donner la racine sur le disque du service Web (local Web root): /var/www/moncv
#Donner la racine sur le disque du service Web (local Web root): /var/www/moncv
#Aller dans l'onglet Mapping
#Aller dans l'onglet Mapping
#Cliquer sur Nouveau
#Faire nouveau
##Dans chemin sur le serveur mettre : /var/www/moncv
##Dans Chemin sur le serveur, indiquer : /var/www/moncv
##Cocher chemin dans l'espace de travail
##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
##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
#Cliquer sur OK jusqu'à ce que toutes les boîtes de dialogues soient fermées


=== Indiquer le débogueur ===
=== Indiquer le débogueur ===
# Via le Menu : Window > Preferences
# Via le menu : Window > Preferences
# Aller dans le Menu : Window > Preferences
# Cliquer sur le noeud : PHP > Debug
# Cliquer sur le noeud : PHP > Debug
# Dans la liste "PHP Debugger" choisir "XDebug“
# Dans la liste "PHP Debugger", choisir "XDebug"
# Cliquer sur appliquer (Apply)
# Cliquer sur Appliquer (Apply)
# Cliquer sur OK pour fermer la fenêtre
# Cliquer sur OK pour fermer la fenêtre


== Débugguer une page Web ==
== Débugguer une page Web ==


=== Créer une page web ===
=== Créer une page Web ===


Nous allons créer une page PHP dans le répertoire src :
Nous allons créer une page PHP dans le répertoire src :
# Cliquer bouton droit sur le répertoire src dans Eclipse
# Clic droit sur le répertoire src dans Eclipse
# Nouveau > PHP File
# Nouveau > PHP File
# Indiquer comme nom de fichier : index.php
# Indiquer comme nom de fichier : index.php
Ligne 288 : Ligne 285 :
</source>
</source>


Sauvegarder en faisant dans le Menu : File > Save (ou Ctrl + s )
Sauvegarder, dans le menu : File > Save (ou Ctrl + s )


=== Insérer un point d'arrêt ===
=== Insérer un point d'arrêt ===
Ligne 294 : Ligne 291 :
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.
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 de l'exécution pas à pas dans le code.<br />
C'est très pratique pour voir à cet endroit la valeur des variables ou pour commencer à faire de l'exécution pas à pas dans le code.<br />
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.
Le pas-à-pas permet d'avancer dans le code "commande par commande". Il permet de voir exactement ce qui est exécuté 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 apparaître dans la marge ce qui indique le point d'arrêt.
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 apparaître 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.
'''Exercice''' : double-cliquer sur le numéro de ligne où se trouve la fonction phpinfo. <br />
Ce point d'arrêt nous sera utile dans l'exercice suivant.
Ce point d'arrêt nous sera utile dans l'exercice suivant.


=== Créer un profil de débogage ===
=== Créer un profil de débogage ===


Un site Web est composé de plusieurs fichiers PHP qui peuvent être autant de point d'entrée dans votre site.
Un site Web est composé de plusieurs fichiers PHP qui peuvent être autant de points d'entrée dans votre site.
Si vous débuggez une page php particulière, il vous faudra créer un profil de débuggage pour cette page.
Si vous débuggez 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éé.
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.
Nous allons créer un profil de débuggage pour la page index.php.
# Via le menu : Run > Debug configurations

# Clic droit sur PHP Web Page
# Via le Menu : Run > Debug configurations
# Dans le menu contextuel, choisir Nouveau
# Cliquer bouton droit sur PHP Web Page
# Dans le menu contextuel choisir Nouveau
# Donner un nom : index.php
# 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)
# Indiquer le fichier PHP à exécuter 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 : 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
# 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'''
# Modifier l'url /MonCv/src/index.php en laissant juste index.php
# Cliquer sur appliquer (Apply) pour sauver
# Cliquer sur Appliquer (Apply) pour sauver
# Cliquer sur fermer (close)
# Cliquer sur Fermer (Close)


{{remarque|contenu= Si la configuration de XDebug s'est bien passée, vous devez lire devant server Debugger : XDebug et devant PHP server : moncv.
{{remarque|contenu= 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}}
Si ce n'est pas le cas, indiquez XDebug et le serveur moncv}}


Ligne 328 : Ligne 324 :
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.
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.
Pour revenir manuellement à un de ces modes, vous pouvez faire, dans le menu : Window > Open Perspective > PHP ou Debug.


{{remarque|contenu=
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.
Un bug, en anglais, signifie erreur dans du code informatique. Le même mot signifie aussi insecte. 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
Nous allons lancer le débuggage :
#En haut de l'écran (dans la toolbar), il y a un insecte avec un triangle, cliquer sur le triangle
# 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éé.
# Choisir index.php, qui est le profil que nous avons créé.
# Eclipse vous propose de passer en mode Debug : accepter
# Eclipse vous propose de passer en mode Debug : accepter.


Vous pouvez voir maintenant (si tout c'est bien passé) :
Vous pouvez voir maintenant (si tout s'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 carré rouge qui vous permet d'arrêter le débuggage'''
* Zone Debug (en haut à gauche) '''un triangle vert qui vous permet de poursuivre l’exécution'''
* 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 Debug (en haut à gauche) : des flèches jaunes 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 Fichier (au milieu à gauche) : vous voyez le fichier avec une flèche bleue
* 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.
* 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 découvrirez en jouant avec Eclipse les mille et une fonctions disponibles.


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.
Vous disposez maintenant de l'environnement de développement qui va nous permettre de développer un service Web, mais surtout de suivre la leçon sur SPARQL.


{{remarque|contenu=
{{remarque|contenu=
'''Débugger sans environnement de développement'''
'''Débugger sans environnement de développement'''


Il faut savoir que la [[w:Loi de Murphy|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.
La [[w:Loi de Murphy|Loi de Murphy]] s'applique aussi en informatique et il vous faut savoir débugger ou analyser un problème même sans Eclipse.


:1) 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) :

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)
<source lang="php">
<source lang="php">
if (!ini_get('display_errors')) {
if (!ini_get('display_errors')) {
Ligne 363 : Ligne 360 :


Vous pouvez aussi modifier ce paramètre d'affichage directement dans le fichier php.ini (rarement possible chez des hébergeurs PHP)
:2) 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 :
Modifier le fichier php.ini :
<source lang="text">
<source lang="text">
Ligne 370 : Ligne 367 :
</source>
</source>


Rappel, on trouve le fichier php.ini via la commande '''php --ini'''
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.
:3) Pour finir, la méthode la plus simple durant un débuggage à l'aveugle avec un serveur est 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 :
Utiliser la commande suivante pour faire défiler les logs en temps réel :
Ligne 383 : Ligne 380 :


[[Catégorie:SPARQL Protocol and RDF Query Language]]
[[Catégorie:SPARQL Protocol and RDF Query Language]]
{{Bas de page
| leçon = TP SPARQL
| idfaculté = informatique
| précédent = [[../Initiation à PHPUnit/]]
| suivant = [[../Faire un serveur SPARQL/]]
}}

Version du 29 décembre 2011 à 00:53

Après ce TP, vous saurez :
  • installer Eclipse
  • installer XDebug
  • faire du débogage pas à pas dans un site Web PHP avec Eclipse
Durée : 2 heures
Matériel :
  • un serveur Web Linux avec PHP.
Début de la boite de navigation du travail pratique
Initiation à Eclipse
Image logo représentative de la faculté
T.P. no 6
Leçon : SPARQL Protocol and RDF Query Language

TP de niveau 0.

Précédent :Initiation à PHPUnit
Suivant :Faire un serveur SPARQL
En raison de limitations techniques, la typographie souhaitable du titre, « Travail pratique : Initiation à Eclipse
SPARQL Protocol and RDF Query Language/Travail pratique/Initiation à Eclipse
 », n'a pu être restituée correctement ci-dessus.


Pourquoi utiliser Eclipse ?

Dans ce TP, nous allons installer Eclipse, ainsi que certains composants de débuggage.
Eclipse est l'un des logiciels les plus utilisés pour faire du développement Web et il est gratuit.
Malheureusement, sa puissance est inversement proportionnelle à son ergonomie. Il faut un certain temps pour arriver à l'utiliser correctement.

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 à tout vrai développeur professionnel.

A savoir avant de commencer

Les débogueurs PHP

Il n’y a que 2 débogueurs pour PHP :

  • Zend, qui est intégré à la suite de développement payante Zend (à condition de disposer des serveurs de production é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épenses.

Documentations

Ce TP a été fabriqué avec les documents suivants :

Installation

Débogueur : 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 connaître 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 fournis par un moteur de recherche quand vous recherchez le nom de votre distribution Linux avec sa version et XDebug.

Ubuntu 10.04.3

Installez 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

Ajoutez à 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

Mettez à jour votre configuration.

sudo service apache2 reload

Vérifiez que XDebug est bien activé dans votre configuration PHP.

php -r 'phpinfo();' | grep -e "xdebug support => enabled"


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

Vérifiez si votre version de JRE est 32 ou 64 bits :

java -d64 -version

ou

java -d32 -version


Eclipse

En fonction de la version de votre JRE, 32 ou 64 bits, vous choisirez la dernière version de "Eclipse platformRuntime" x86 ou x86_64 : (Ce lien est celui donné par la : documentation Eclipse d’août 2011)


Nous installerons Eclipse dans votre répertoire personnel :

mkdir ~/opt

On passe dans le répertoire où votre navigateur a enregistré 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 le répertoire bin dans notre répertoire 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

Copiez 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 raccourci pour le mettre sur notre bureau :

  1. clic droit sur votre bureau
  2. créer un raccourci (ou create launcher)
  3. indiquer le nom : Eclipse
  4. indiquer le chemin du script (command) : /home/<your username>/opt/eclipse/eclipse
  5. 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
  6. cliquer sur OK

Vous pouvez maintenant double cliquer sur l’icône 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 plug-ins d'Eclipse

Dans Eclipse :

  1. aller dans le menu : Help > Install New Software.
  2. cliquer que le bouton "Add...".
  3. renseigner les champs avec le nom Indigo et l'adresse http://download.eclipse.org/releases/indigo.

Vous pouvez maintenant installer les plug-ins PHP et Web.

Installer le plug-in PHP

Dans Eclipse :

  1. Aller dans le menu : Help > Install New Software.
  2. Choisir le site (Work with) : "Indigo -- http://download.eclipse.org/releases/".
  3. Attendre que la liste soit mise à jour (attendez que le mot pending disparaisse).
  4. Aller ensuite dans langages de programmation.
  5. Cocher la liste PHP Development Tools (PDT).
  6. Cliquer sur Suivant deux fois.
  7. Cocher Accepter les licences.
  8. Cliquer sur Terminer.

Après l'installation, Eclipse vous demande de redémarrer :

  • cliquer sur "redémarrer maintenant"

Installer le plug-in Web

  1. aller dans le menu : Help > Install New Software .
  2. Choisir le site (Work with) : "Indigo -- http://download.eclipse.org/releases/" .
  3. Attendre que la liste soit mise à jour (attendez que le mot pending disparaisse).
  4. Aller ensuite dans "Web, XML, JavaEE...".
  5. Cocher "Eclipse Web Developer Tools".
  6. Cliquer sur Suivant deux fois.
  7. Cocher Accepter les licences.
  8. 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éé l'arborescence de fichier du projet nommé MonCV. Nous allons ouvrir ce projet et le configurer.

  1. Ouvrir Eclipse.
  2. Menu Fichier > Nouveau projet.
  3. Ouvrer PHP > projet PHP.

La boîte de dialogue "Nouveau projet" s'ouvre.

  1. Donner un nom au projet : MonCv.
  2. Cocher : Créer un projet de sources existantes.
  3. Rechercher la racine du répertoire créé dans le TP précédent : ~/projets/moncv .
  4. cliquer sur Terminer (Finish).

Configurer la construction du projet

Nous allons utiliser Phing pour construire le projet automatiquement afin de permettre de le débugger.

A chaque modification d'un fichier dans le projet, le script build.xml sera exécuté pour les tests unitaires et déployé sur le serveur Web (/var/www/moncv) que nous avons configuré dans un précédent TP.

Pour ce faire :

  1. Faire un clic droit sur ​​le projet
  2. sélectionner Propriétés
  3. sélectionner Constructeurs(builder)
  4. cliquer sur Nouveau pour afficher la boîte de dialogue "Choisir le type de configuration"
  5. sélectionner Programme
  6. Cliquer sur OK

La boîte de dialogue pour créer une configuration s'est affichée :

  1. Donner un nom, par exemple : Phing build.xml
  2. Indiquer l'emplacement de l'exécutable (Location) : /usr/bin/phing
  3. Indiquer l'emplacement d’exécution (Working directory) :
    1. Cliquer sur le bouton Browse WorkSpace
    2. Sélectionner la racine où se trouve le fichier build.xml, ici MonCV
    3. 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 :

  1. Aller dans l'onglet Rafraîchir (Refresh).
  2. Cocher la case "Rafraîchir les ressources" (Refresh resources upon each completion).
  3. Cocher "Espace de travail en entier" (The entire Workspace).
  4. Aller dans l'onglet Options (Build Options).
  5. Cocher l'auto-construction (During auto-build).

Cliquer finalement sur le bouton OK pour refermer la boîte de dialogue.

Configurer le débogueur

Indiquer le serveur utilisé pour débugger

Nous utiliserons le serveur Web que nous avons installé dans un précédent TP pour déboguer notre projet.

  1. Via le menu : Window > Preferences
  2. Ouvrir le noeud : PHP > PHP Servers
  3. Créer un nouveau serveur : MonCV
  4. Donner son domaine (base url) : http://moncv
  5. Donner la racine sur le disque du service Web (local Web root): /var/www/moncv
  6. Aller dans l'onglet Mapping
  7. Cliquer sur Nouveau
    1. Dans Chemin sur le serveur, indiquer : /var/www/moncv
    2. Cocher Chemin dans l'espace de travail
    3. Trouver la racine des sources, c'est-à-dire le répertoire src. Vous devez avoir comme résultat : MonCV/src
  8. Cliquer sur OK jusqu'à ce que toutes les boîtes de dialogues soient fermées

Indiquer le débogueur

  1. Via le menu : Window > Preferences
  2. Cliquer sur le noeud : PHP > Debug
  3. Dans la liste "PHP Debugger", choisir "XDebug"
  4. Cliquer sur Appliquer (Apply)
  5. 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 :

  1. Clic droit sur le répertoire src dans Eclipse
  2. Nouveau > PHP File
  3. Indiquer comme nom de fichier : index.php

Insérer le texte suivant dans le fichier :

<?php
phpinfo();

Sauvegarder, 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 pour commencer à faire de l'exécution pas à pas dans le code.
Le pas-à-pas permet d'avancer dans le code "commande par commande". Il permet de voir exactement ce qui est exécuté 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 apparaître dans la marge, ce qui indique le point d'arrêt.

Exercice : double-cliquer sur le numéro de ligne où se trouve la fonction phpinfo.
Ce point d'arrêt nous sera utile dans l'exercice suivant.

Créer un profil de débogage

Un site Web est composé de plusieurs fichiers PHP qui peuvent être autant de points d'entrée dans votre site. Si vous débuggez 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.

  1. Via le menu : Run > Debug configurations
  2. Clic droit sur PHP Web Page
  3. Dans le menu contextuel, choisir Nouveau
  4. Donner un nom : index.php
  5. Indiquer le fichier PHP à exécuter en cliquant sur le bouton Chemin et trouver le fichier index.php (ce qui doit donner  : /MonCv/src/index.php)
  6. Décocher : Break at first line (sinon le débuggeur s'arrêtera dès la première ligne)
  7. Décocher Auto-generate pour indiquer manuellement l'url index.php sur le serveur
  8. Modifier l'url /MonCv/src/index.php en laissant juste index.php
  9. Cliquer sur Appliquer (Apply) pour sauver
  10. Cliquer sur Fermer (Close)


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, dans le menu : Window > Open Perspective > PHP ou Debug.


Nous allons lancer le débuggage :

  1. En haut de l'écran (dans la toolbar), il y a un insecte avec un triangle, cliquer sur le triangle.
  2. Choisir index.php, qui est le profil que nous avons créé.
  3. Eclipse vous propose de passer en mode Debug : accepter.

Vous pouvez voir maintenant (si tout s'est bien passé) :

  • Zone Debug (en haut à gauche) : un carré rouge qui vous permet d'arrêter le débuggage
  • Zone Debug (en haut à gauche) : un triangle vert qui vous permet de poursuivre l’exécution
  • Zone Debug (en haut à gauche) : des flèches jaunes 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 bleue
  • 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 Eclipse les mille et une fonctions disponibles.

Vous disposez maintenant de l'environnement de développement qui va nous permettre de développer un service Web, mais surtout de suivre la leçon sur SPARQL.