5.1 CHOIX DES OUTILS Voici pour commencer un bref aperçu de quelques valeurs sûres qui s’avèrent à l’usage extrêmement pratiques pour faciliter le développement et la maintenance d’un si
Trang 1framework de développement qui fournit un cadre de travail contraint et normalisé.
Je présente un de ces frameworks, le Zend Framework, dans le chapitre 9.
Dans le présent chapitre nous allons commencer par tour d’horizon des régles organisationnelles de base, accompagné d’une présentation rapide des outils qui faci-litent leur application On peut très bien envisager de tout développer en utilisant le bloc-notes des accessoires Windows, mais il paraît plus sérieux de recourir à des outils spécialisés Parmi les logiciels libres, il faut citer au minimum un environnement
intégré comme Eclipse, un navigateur permettant de valider le code HTML comme Firefox associé à Web Developer, et enfin un système de gestion de versions comme
Subversion ou CVS Le réalisation de suites de tests avec PhpUnit et la production
de documentation avec PhpDoc sont également brièvement abordés Le but n’est pas ici de couvrir complètement des outils de génie logiciel, mais de montrer leur rôle et leur intérêt dans le cadre d’un processus de développement rigoureux
Les sections suivantes sont consacrées à la résolution d’autres problèmes « structu-rels », indépendants des problèmes « fonctionnels » liés à une application spécifique : gestion des erreurs et des exceptions, et portabilité multi-SGBD Ce livre ne prétend pas être un traité complet d’ingénierie logicielle, mais je propose pour chaque pro-blème une solution, avec un double objectif : être à la fois concret, en fournissant une méthode utilisable, et simple, pour permettre au lecteur de comprendre la démarche
Le prochain chapitre, complémentaire, sera consacré à l’organisation du code proprement dite, avec une introduction à l’architecture Modèle-Vue-Contrôleur (MVC), maintenant très souvent adoptée pour la réalisation d’applications web de taille significative
5.1 CHOIX DES OUTILS
Voici pour commencer un bref aperçu de quelques valeurs sûres qui s’avèrent à l’usage extrêmement pratiques pour faciliter le développement et la maintenance d’un site
5.1.1 Environnement de développement intégré Eclipse
L’écriture de code peut être assez rébarbative, et comprend de nombreux aspects
répé-titifs dont on peut penser qu’ils gagneraient à être automatisés Les Environnements
de Développement Intégrés (acronyme IDE en anglais) fournissent dans un cadre bien
conçu tous les outils qui facilitent la tâche du développeur : contrôle syntaxique, navigation dans les fichiers, aide à la saisie, liste de tâches, etc Le plus connu de ces
IDE est certainement Eclipse (http://www.eclipse.org) initialement conçu et réalisé
pour des applications Java, mais propose de très nombreuses extensions, dont une
dédiée à PHP, le PHP Development Tools ou PDT.
La figure 5.1 montre Eclipse en action avec la perspective PDT sur le site WEB -SCOPE L’ensemble des fenêtres et leur disposition sont entièrement configurables Voici une description qui vous donnera une idée de la puissance de cet outil
Trang 2• la partie gauche supérieure montre la hiérarchie des répertoires du projet WEBSCOPE;
• la partie gauche inférieure est une aide à la programmation PHP, avec entre autres la possibilité de trouver rapidement une fonction et son mode d’appel ;
• la partie centrale est le fichier PHP en cours d’édition ; les catégories syn-taxiques (variables, instructions, structures de contrôle) sont mises en valeur par des codes couleurs, et les erreurs de syntaxe sont détectées et signalées par l’éditeur ;
• la partie droite est un résumé de la structure du fichier PHP courant ; ici il s’agit d’une classe, avec des méthodes privées et publiques, des constantes, des propriétés, etc ;
• enfin la partie basse contient des informations sur le projet et le fichier courant, comme les tâches à effectuer, des annotations sur le code, la liste des problèmes détectés, etc
Figure 5.1 — Environnement de développement Eclipse pour PHP L’apprentissage de ce type d’outil demande quelques heures d’investissement pour une utilisation basique ou quelques jours pour une utilisation avancée Dans tous les cas, le gain en termes de confort d’utilisation et de temps est considérable Je
ne saurais donc trop vous conseiller d’effectuer cet effort dès que vous entamerez la réalisation de scripts PHP qui dépassent les simples exemples vus jusqu’à présent L’installation est simple (et gratuite) Vous devez commencer par installer Eclipse,
téléchargeable sur le site http://www.eclipse.org Pour l’extension PHP, toutes les ins-tructions se trouvent sur la page http://www.eclipse.org/pdt/ Essentiellement il suffit,
Trang 3dans Eclipse, d’accéder au choix Software update du menu Help, et de télécharger PDT
à partir de http://download.eclipse.org/tools/pdt/updates En cas de problème, vérifiez les
dépendances et compatibilités de version en cherchant sur le Web : on trouve presque toujours quelqu’un qui a bien voulu indiquer la marche à suivre
5.1.2 Développement en équipe : Subversion
Si vous développez seul, une seule version de vos fichiers sur votre machine suffit Dès que l’on travaille à plusieurs sur la même application, le problème des mises à jour concurrentes se pose Comment être sûr qu’on ne va pas se retrouver à travailler
à deux sur le même fichier, avec risque de conflit ; comment récupérer facilement les évolutions effectuées par quelqu’un d’autre ; comment gérer des versions, surveiller les évolutions, comprendre ce qui a changé ? Des outils ont été créés pour faciliter
la gestion des évolutions et le développement collectif sur une même application
Le plus répandu est sans doute CVS (Concurrent Versioning System), qui tend à être
remplacé par Subversion, un autre système très proche dans ses principes mais un peu plus puissant
La présentation des principes de gestion de version dépasse évidemment le cadre
de ce livre1, mais il est important d’être au moins averti de l’existence de ces outils, de leur apport à la résolution des problèmes soulevés par le développement coopératif,
et enfin de leur facilité de mise en œuvre Une fois la configuration effectuée, un ou deux clics suffisent pour livrer les évolutions effectuées, et au contraire récupérer les évolutions faites par d’autres
Vous pouvez tout à fait sauter la description qui suit si cette problématique ne vous concerne pas, ou pas tout de suite Mais si vous êtes intéressés par la découverte et l’expérimentation d’un développement en commun et d’utilisation de CVS, je vous propose tout simplement de participer à l’amélioration du site WEBSCOPEdont le
code est disponible sur le serveur CVS de SourceForge à l’adresse suivante.
webscope.cvs.sourceforge.net
Voici comment procéder, en utilisant Eclipse qui fournit une interface de navi-gation et d’utilisation de CVS simple et puissante2 Il faut tout d’abord indiquer
le serveur CVS Pour cela, accédez au menu Windows, puis Open perspective et
choisissez la perspective CVS La fenêtre de gauche montre alors la liste des serveurs CVS répertoriés Elle est initialement vide, mais vous allez ajouter un serveur avec
le bouton CVS situé en haut de la fenêtre La figure 5.2 montre le formulaire de configuration qui s’affiche alors
Entrez les informations comme indiqué Pour le compte de connexion, vous pouvez soit utiliser une connexion anonyme si vous n’avez pas créé de compte sur
1 Je vous recommande la lecture du livre (en anglais) librement disponible consacré à SubVersion,
à l’adresse http://svnbook.red-bean.com/.
2 CVS est nativement intégré à Eclipse Pour utiliser Subversion il faut installer Subclipse, ce qui
se fait en quelques minutes.
Trang 4Figure 5.2 — Configuration de la connexion au serveur CVS
SourceForge, soit utiliser votre compte SourceForge Dans le premier cas vous pourrez juste récupérer le code, sans faire de modification Il est bien entendu préférable
de créer un compte sur SourceForge pour bénéficier pleinement des fonctionnalités collaboratives
Une fois connecté au serveur CVS, vous pouvez explorer les versions et les fichiers
du projet WEBSCOPE La figure 5.3 montre la navigation et la consultation des
Figure 5.3 — Exploration du répertoire distant CVS
Trang 5fichiers dans la branche HEAD qui contient la version en cours de développement
du projet Les versions successives sont dans d’autres branches
Vous pouvez récupérer une version en utilisant le clic droit sur un répertoire (par
exemple, webscope de la branche HEAD) et en choisissant l’option checkout Eclipse
va alors importer l’ensemble des fichiers du site dans un projet sur votre machine locale, et vous pouvez commencer des modifications sur les fichiers pour améliorer
le code Toutes les modifications agissent sur la version locale, indépendamment de tout ce qui peut se passer par ailleurs sur le serveur CVS de SourceForge Quand vous estimez que vous avez apporté une contribution significative au code et que vous souhaitez l’intégrer au CVS, utilisez à nouveau le clic droit sur votre projet local, et
choisissez l’option Team, puis Commit comme indiqué sur la figure 5.4.
Figure 5.4 — Validation de modifications, et transfert sur le serveur CVS
Vous voici entré dans le processus de développement coopératif avec Eclipse et
CVS À chaque moment, vous pouvez au choix utiliser la commande Commit pour
valider vos modifications et les transférer sur le CVS, ou au contraire la commande
Update pour récupérer dans votre copie locale les modifications effectuées par les
autres utilisateurs
Je n’en dis pas plus à ce stade Lisez un tutorial sur CVS pour comprendre le fonctionnement de base (qui tient en quelques commandes) et pratiquez avec le site CVS que je vous propose sur SourceForge Le site web du livre vous informera des développements et évolutions de ce prolongement collectif au code décrit dans le reste de ce livre