PHPEclipse : Programmez librement pour le Web

Jean-Pierre Grossglauser

PHPEclipse étend l'environnement de développement intégré Eclipse pour le développement Web avec PHP. Ce tutoriel vous propose une vue d'ensemble de la plate-forme, des fonctionnalités proposées par le plug-in et ses extensions complémentaires.

- Titre : PHPEclipse : Programmez librement pour le Web

- Auteur : Jean-Pierre Grossglauser

- Parution : 19 octobre 2006

- Mise à jour : 9 décembre 2019

- Licence : Copyright ® 2006 Jean-Pierre Grossglauser. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Introduction

- I-A. Remerciements

- I-B. À qui s'adresse ce tutoriel ?

- I-C. Pourquoi choisir PHPEclipse ?

- II. Prérequis

- II-A. Environnement d'exécution Java

- II-B. Eclipse

- II-C. Plate-forme LAMP/WAMP

- III. Eclipse

- III-A. Installation

- III-B. Premiers pas

- III-C. Le Workbench

- III-D. Les perspectives

- III-E. Les vues

- III-F. Les Éditeurs

- III-G. Les Working Sets

- III-H. Gestion de versions

- IV. PHPEclipse

- IV-A. Installation

- IV-B. La perspective PHP

- IV-C. Création d'un projet

- IV-D. La vue Navigator

- IV-E. L'éditeur

- IV-E-1. Hovers

- IV-E-2. Navigation

- IV-E-3. Folding

- IV-E-4. Code Assist

- IV-E-5. Code Templates

- IV-E-6. Aide PHP

- IV-F. La vue PHP Browser

- IV-G. Les vues annexes

- IV-G-1. Outline

- IV-G-2. Tasks

- IV-G-3. Problems

- IV-H. Débogage

- IV-H-1. DBG : PHP Debugger

- IV-H-1-a. Paramétrage

- IV-H-2. La Perspective Debug

- IV-H-2-a. Configurer une session

- V. Quelques extensions

- V-A. Support FTP et WebDAV

- V-A-1. La vue Site Explorer

- V-A-2. Importer/Exporter des ressources

- V-B. Quantum DB

- V-B-1. Création d'un signet MySQL

- V-C. Eclipse Web Tools Plateform

- VI. Conclusion

- VI-A. Références

I - Introduction

I-A - Remerciements

Mes remerciements à Guillaume Rossolini pour ses conseils et sa relecture.

I-B - À qui s'adresse ce tutoriel ?

Les sujets sont abordés de manière synthétique et, bien qu'ils soient richement illustrés, il est souhaitable d'avoir un niveau intermédiaire dans le développement Web. Si vous avez des questions concernant l'utilisation de PHPEclipse ou l'une de ses extensions, rendez-vous sur le forum PHP.

Si vous avez des questions ou remarques relatives au présent document, contactez-moi.

I-C - Pourquoi choisir PHPEclipse ?

Quelques caractéristiques et fonctionnalités natives

- Open source.

- Navigateur Web interne.

- Système d'aide globale.

- Aide à la saisie de code source (Code Insight, code hint).

- Gabarits de code source.

- Débogueur.

Quelques extensions

- Support global pour XHTML, CSS, Javascript et XML. (Eclipse WebTools Platform).

- Déploiement de projets par FTP ou WebDAV. (Eclipse FTP and WebDAV support).

- Gestion de base de données en interne (Quantum DB).

- Analyse et mise en conformité de code HTML (HTML Tidy).

II - Prérequis

II-A - Environnement d'exécution Java

Un environnement d'exécution Java (machine virtuelle Java) doit être installé sur votre système.

Télécharger l'environnement d'exécution Java.

II-B - Eclipse

Eclipse.

Télécharger Eclipse SDK.

II-C - Plate-forme LAMP/WAMP

Vous devez disposez d'un serveur HTTP local avec PHP, (et MySQL en option pour ce tutoriel). Si vous n'êtes pas familiarisé avec la gestion d'un serveur Web, vous pouvez télécharger le logiciel tout-en-unXAMPP.

III - Eclipse

Ce chapitre vous propose une brève introduction à l'environnement de développement Eclipse.

III-A - Installation

Décompressez l'archive dans le répertoire de votre choix. Puis lancez l'application.

III-B - Premiers pas

Lorsque vous démarrez Eclipse pour la première fois, vous devez définir un Workspace, il s'agit du répertoire de travail principal dans lequel seront stockées toutes vos ressources Eclipse. Si vous cochez la case « Use this as the default and do not ask again », le logiciel utilisera le répertoire spécifié à chaque démarrage.

Les ressources définissent de manière abstraite les fichiers, répertoires et projets contenus dans un Workspace.

Pour une meilleure organisation, il peut être utile de définir le Workspace sur une partition secondaire. Vous pouvez également, si vous développez exclusivement pour le Web, définir un répertoire commun pour votre Workspace et le répertoire web racine de votre serveur HTTP.

Après avoir lancé votre Workspace, l'écran de bienvenue apparaît. Le menu peut vous sembler déroutant au premier abord, mais tout ceci est très convivial, vous avez la possibilité d'accéder respectivement à une vue d'ensemble du logiciel, aux notes de version, à des exemples, des tutoriels ou au Workbench, l'environnement de développement proprement dit.

III-C - Le Workbench

Le Workbench représente le conteneur principal de l'IDE. Il se compose d'une perspective.

Si vous disposez de moniteurs en dual-screen, profitez-en pour instancier plusieurs Workbench !

III-D - Les perspectives

Une perspective intègre une ou plusieurs vues généralement accompagnées d'un éditeur. Ce concept vous permet d'alterner à la volée les contextes de développement en fonction de la tâche à effectuer.

Quelques perspectives

Description

Java

Perspective par défaut, permet de développer en Java.

Debug

Perspective destinée au débogage.

Resource

Perspective abstraite permettant d'éditer une ressource quelconque.

III-E - Les vues

Une vue comporte une ou plusieurs fonctionnalités permettant d'interagir avec les ressources, l'éditeur, le Workspace ou le Workbench.

Quelques vues

Description

Navigator

Cette vue vous permet de parcourir toute l'arborescence du Workspace courant et d'effectuer diverses tâches admistratives en rapport avec les ressources.

Outline

Cette vue fournit le squelette du fichier en cours d'édition (lorsque cela est rendu possible).

III-F - Les Éditeurs

L'éditeur permet d'éditer les fichiers source. Vous pouvez en ouvrir plusieurs simultanément, en onglet, en cascade ou détachés.

III-G - Les Working Sets

Les Working Sets vous permettent de définir un contexte de travail personnalisé. Vous pouvez par exemple déterminer précisément les ressources que vous souhaitez voir affichées dans votre Workspace et masquer virtuellement le reste, ceci peut s'avérer particulièrement utile si votre Workspace ou l'un de vos projets compte un grand nombre de ressources.

III-H - Gestion de versions

Eclipse dispose d'un mécanisme interne de gestion de versions, le Local history. Cette fonctionnalité permet d'effectuer la comparaison, le remplacement ou la restauration complète d'une ressource locale.

Par ailleurs, Eclipse propose la perspective native CVS Repository Exploring. Cette dernière, dédiée aux projets collaboratifs, fournit un client graphique pour l'exploration et la gestion de versions via CVS.

Il existe également plusieurs plugins tiers pour SVN (Subversion), notamment Subclipse.

IV - PHPEclipse

IV-A - Installation

Démarrez Eclipse puis ouvrez le gestionnaire de mise à jour. [ Help -> Software Updates -> Find and Install… ]

Sélectionnez « Search for new feature to install », puis ajouter un nouveau site distant (New remote site) : http://phpeclipse.sourceforge.net/update/releases/

Cochez PHPeclipse, puis suivez les instructions.

IV-B - La perspective PHP

La perspective PHP, comme son nom l'indique, initialise l'environnement pour le développement PHP. Vous pouvez la customiser à partir du menu principal.
[ Window -> Customize Perspective… ].

IV-C - Création d'un projet

Vous pouvez créer un nouveau projet spécifique en sélectionnant l'assistant à la création d'un projet. [ File -> New -> Project ]

IV-D - La vue Navigator

La vue Navigator fournit l'arborescence du Workspace courant et permet d'effectuer diverses actions sur les ressources. Cette vue varie selon les perspectives utilisées.

IV-E - L'éditeur

IV-E-1 - Hovers

Lorsque vous placez votre curseur sur un élément du code source, l'éditeur fournit un certain nombre d'informations telles que son type, le ou les fichiers source dans lesquels il est déclaré et éventuellement les commentaires PHPDoc affiliés.

Le terme élément de code source englobe les variables, constantes, fonctions, attributs, méthodes et classes.

Commentez votre code avec PHPDoc, ceci améliorera la compréhension générale du programme, la productivité et la qualité de la documentation technique.

IV-E-2 - Navigation

Lorsque votre curseur est placé sur un élément de code source, vous pouvez vous rendre à sa déclaration en utilisation le menu contextuel (Open Declaration/Include) ou en appuyant sur la touche [F3]

Si l'élément dispose de plusieurs déclarations, une boîte de dialogue vous propose de choisir la ou les ressources à ouvrir.

La fonctionnalité hyperlink style[Preferences -> PHPeclipse Web Developement -> PHP -> Navigation ] vous permet également d'ouvrir une déclaration en maintenant la touche [Ctrl] et en cliquant sur l'élément de votre choix.

IV-E-3 - Folding

Le folding permet de replier des blocs de code source (commentaires, corps de fonctions, méthodes ou classes) pour améliorer la lisibilité globale.

IV-E-4 - Code Assist

Le Code Assist est une fonctionnalité d'aide à la saisie de code source. Cette fonctionnalité vous propose une complétion et un descriptif pour toutes les fonctions et variables prédéfinies, toutes les variables, constantes, fonctions et méthodes déclarées dans le fichier et/ou le projet courant ainsi que l'intégralité des balises HTML et PHPDoc.

Vous pouvez activer manuellement le Code Assist avec la combinaison de touches [Ctrl] + [Espace].

IV-E-5 - Code Templates

Les code templates ou gabarits de code vous permettent d'insérer un en-tête personnalisé dans vos fichiers PHP ou HTML.

L'option Insert Variable…vous propose une liste de variables d'environnement que vous pouvez utiliser dans votre en-tête.

IV-E-6 - Aide PHP

PHPEclipse intègre le manuel PHP, lorsque vous placez votre curseur sur une fonction prédéfinie, vous pouvez accéder à sa documentation depuis le menu contextuel. Notez qu'il est possible de remplacer le manuel PHP interne dans les préférences de PHPEclipse.

Vous pouvez également accéder à l'aide avec le raccourci [Ctrl] + [Shift] + [H].

IV-F - La vue PHP Browser

La vue PHP Browser fournit un navigateur Web interne. Liée à l'éditeur, elle permet d'obtenir un aperçu en temps réel des modifications.

IV-G - Les vues annexes

IV-G-1 - Outline

La vue Outline permet d'obtenir un résumé structurel du fichier source. Il s'agit d'une vue native d'Eclipse, étendue en fonction des plug-ins installés.

IV-G-2 - Tasks

Il est parfois nécessaire de placer des « Post-it » à certains endroits du code, pour ne pas omettre une tâche ou pour la signaler à un collaborateur. Les tâches sont définies avec un niveau de priorité (haute, normale, basse) et peuvent être assignées via le menu principal [ Edit -> Add Task ], la marge de l'éditeur, ou en tapant un commentaire monoligne // TODO : Tâche à effectuer, notez que dans ce dernier cas, la tâche sera simplement listée, sans état et avec une priorité normale.

La vue Tasks répertorie toutes les tâches assignées (achevées ou non), avec un indicateur de priorité.

Indicateur

Priorité

Haute priorité

Basse priorité

IV-G-3 - Problems

La vue Problems vous indique les erreurs de syntaxe et d'inclusion de fichiers en temps réel.

IV-H - Débogage

PHPEclipse intègre nativement une interface cliente pour DBG Debugger.

IV-H-1 - DBG : PHP Debugger

Si vous utilisez Windows, vérifiez sur le site officiel qu'il existe l'extension php_dbg.dll correspondant à votre version de PHP. Si ce n'est pas le cas, faites une recherche sur PHPEclipse.net (entre autres) ou compilez la DLL à partir des sources.

IV-H-1-a - Paramétrage

Ajoutez les lignes suivantes dans votre php.ini

[debugger]
extension=php_dbg.dll
debugger.enabled=on
debugger.profiler_enabled=on
debugger.hosts_allow=localhost
debugger.hosts_deny=ALL
debugger.ports=7869, 10000/16

Description des paramètres

- extension : Chemin de l'extension.

- debugger.enabled : Activation / Désactivation du débogueur.

- debugger.profiler : Activation / Désactivation du profiler.

- debugger.hosts_allow : Hôtes autorisées.

- debugger.hosts_deny : Hôtes refusées.

- debugger.ports : Ports d'écoute.

Redémarrez votre serveur pour que les changements soient pris en compte puis vérifiez que DBG est opérationnel avec phpinfo().

IV-H-2 - La Perspective Debug

La perspective Debug définit un contexte général pour le débogage, elle se compose notamment de trois vues :

- Debug : fournit l'état d'une session de débogage ;

- Variables : fournit la valeur instantanée d'une variable lorsqu’un point d'arrêt est placé ;

- Points d'arrêt : liste les points d'arrêt. (N'est présentement pas pris en charge par PHPEclipse.)

IV-H-2-a - Configurer une session

Créez un nouveau contexte d'exécution, puis sélectionnez le projet et le fichier PHP à déboguer.

Les points d'arrêt logiciel ne semblent pas être pris en charge par PHPEclipse, utilisez la fonction debugbreak() pour les placer.

Dans le premier onglet environnement, il vous faut notamment préciser le débogage distant.

Description des paramètres

- Remote Debug : indique qu'il s'agit d'un débogage distant.

- Cross Platform debugging : à cocher si l'extension est installée sur une plate-forme système différente du client.

- Open with DBGSession URL in internal Browser : initialise le débogage à partir du navigateur interne (PHP Browser).

- Remote Sourcepath : répertoire racine distant.

Après avoir paramétré votre session, vous pouvez lancer le débogage immédiatement, via la boite de dialogue, la barre d'outils ou avec la touche [F11].

Vous pouvez parcourir le script pas-à-pas avec la touche [F5].

V - Quelques extensions

Eclipse dispose d'un certain nombre de plug-ins complémentaires pour le développement Web. Le chapitre suivant liste les extensions les plus utilisées.

V-A - Support FTP et WebDAV

Cette fonctionnalité Eclipse permet d'étendre l'importation et l'exportation de ressources au niveau des serveurs FTP ou WebDAV. Vous pouvez l'installer à partir du gestionnaire de mises à jour (Site distant : http://update.eclipse.org/updates/).

V-A-1 - La vue Site Explorer

La vue Site Explorer vous permet de parcourir l'arborescence d'un ou plusieurs « Target sites », il s'agit des emplacements cibles définis lors de vos dernières exportations ou importations. Vous pouvez par là, même copier une ressource dans autre dossier, configurer ou retirer un emplacement cible.

La vue Site Explorer s'active à partir du menu principal. [ Window -> Show view -> other -> Target Management ]

Notez que cette vue fait abstraction de la provenance des ressources (l'emplacement cible peut être un serveur FTP, un serveur WebDAV, le Workspace courant ou du contenu provenant directement du système de fichiers).

Dans Eclipse, le File System ou système de fichiers désigne toutes les ressources locales externes au Workspace courant.

V-A-2 - Importer/Exporter des ressources

Vous pouvez importer des ressources à partir du menu principal [ File -> Import ] ou à partir de la vue Navigator. L'assistant vous demandera de choisir le type d'importation, le dossier de destination puis l'emplacement cible à partir duquel vous importerez les ressources.

Dans le cas d'une importation FTP ou WebDAV, si les arborescences locales et distantes sont similaires, vous pourrez obtenir une comparaison textuelle des ressources.

Pour exporter des ressources, l'approche est sensiblement la même, mais vous devrez définir l'emplacement cible et son type en premier.

V-B - Quantum DB

Quantum DB est un client SQL. Il permet d'obtenir diverses informations sur les tables, effectuer des requêtes SQL assistées ou encore importer/exporter des données.

Le plug-in prend en charge toutes les bases de données disposant d'un driver JDBC standard.

V-B-1 - Création d'un signet MySQL

Les paragraphes suivants décrivent la marche à suivre pour configurer Quantum DB avec une base de données MySQL.

Téléchargez MySQL Connector (driver JDBC), puis décompressez-le dans le répertoire de votre choix.

Créez un nouveau signet à partir du menu contextuel de la vue Database Bookmarks.

Ajoutez le driver MySQL, puis sa classe standard, com.mysql.jdbc.Driver.

Saisissez les informations de connexion, puis un nom pour votre signet.

V-C - Eclipse Web Tools Plateform

Le projet Eclipse Web Tools Platform propose plusieurs sous-projets dédiés au développement Web parmi lesquels, Web Standard Tools (WST), un plug-in offrant un support complet des langages XHTML, JavaScript, CSS, SQL et XML.

VI - Conclusion

D'un point de vue objectif, PHPEclipse propose un grand nombre de fonctionnalités communes à d'autres IDE, notamment Zend Studio, NuSphere PHPEd ou encore PHPEdit. Cependant, le logiciel se démarque de par son développement open source et son framework, Eclipse. Ces caractéristiques permettent d'entrevoir PHPEclipse comme le meilleur choix du moment.

VI-A - Références

Ressources Developpez.com

- PHPEclipse : A User Guide, critique par Guillaume Rossolini.

- PHPEdit - Un IDE complet pour PHP, par Guillaume Rossolini.

- Comparatif des meilleurs éditeurs de scripts PHP, par Hugo Etiévant.

- FAQ Eclipse

Autres ressources

- Eclipse

- PHPEclipse

- DBG : PHP Debugger

- QuantumDB

- PHP

- MySQL

- XAMPP