I. Introduction▲
Avec l'avènement de la version 1.8 du Zend Framework, vous avez certainement remarqué que plusieurs nouveaux composants sont venus embellir le Framework, parmi eux on distingue Zend_Tool qui est particulièrement différent des autres.
Sa particularité réside dans le fait que les autres composants sont destinés à agir au cœur de votre application pour vous faciliter certaines tâches d'exécution courante, ce qui n'est pas le cas avec Zend_Tool qui est un espace de nom qui regroupe un certain nombre de classes destinées à vous aider dans la construction du squelette de votre projet. Il peut être apparenté beaucoup plus à un outil de travail à l'instar de votre IDE.
II. Vue d'ensemble▲
Le développement d'application basée sur Zend Framework et particulièrement lorsque une architecture MVC est adoptée, nécessite au préalable de construire l'architecture initiale de votre projet (structure des répertoires, bootstraping...etc.) et d'y ajouter par la suite les modules, contrôleurs, actions et vues...etc.
Ces tâches qui prennent l'allure de routines, absorbent énormément de temps et qui sont sans intérêt d'usage pour votre projet, deviennent vite fastidieuses au fil du temps, c'est pour ce fait qu'est né le concept d'automatiser toutes ces tâches à l'aide d'outil interne ou externe au Framework, cette méthode de metaprogrammation est communément appelé le scaffolding (échafaudage).
Le scaffolding est une pratique vulgarisé par le Framework non PHP Ruby on Rails et adapté par la suite par d'autres Framework tel que CakePHP, Symphony...etc. et depuis bien longtemps, ce n'est que tardivement que Zend Framework l'a introduite avec l'outil Zend_Tool qui lui manquait considérablement.
III. Présentation de Zend_Tool▲
Zend_Tool a été développé dans la perspective de promouvoir l'aspect RAD du Framework afin d'offrir aux développeurs un gain de temps qui sera consacré aux parties utiles de leur code qui font la particularité et l'utilité de leurs projets.
Initialement l'outil a été développé pour être utilisé avec la ligne de commande, mais avec l'abstraction de la classe Zend_Tool_Framework_Client, il est désormais possible aux développeurs d'implémenter leur propre client avec des protocoles comme XML-RPC, SOAP...etc.
Depuis quelques temps déjà Zend Studio pour eclipse est le seul IDE à offrir un support et des options pour échafauder des projets basés sur Zend Framework. Mais avec la popularité grandissante de Zend Framework et l'introduction de Zend_tool on verra certainement dans les jours à venir d'autres IDE également proposer de telles fonctionnalités.
IV. Installation et configuration de l'outil ligne de commande (CLI Tool).▲
Le CLI Tool (Commande ligne tool) est l'interface principale avec laquelle le développeur peut requêter avec Zend_tool via l'invite de commande, afin de pouvoir utiliser cet outil, vous devrez préalablement installer Zend Framework et faire une petite configuration.
Téléchargez la dernière version de Zend Framework si vous ne l'avez pas encore fait, décompressez le package vers le dossier de votre choix.
IV-A. Installation sous Windows▲
Dans le package que vous avez décompressé et dans le répertoire bin, copiez les deux fichiers zf.bat et zf.php dans le même dossier où se trouve votre php.exe, qui se trouve généralement dans le dossier c:\wamp\bin\php\php5.x.x avec une installation WAMP soit php5.x.x votre version PHP.
Rajoutez le chemin vers votre php.exe dans votre variable d'environnement PATH, pour que la commande soit accessible où que vous soyez.
Mettez votre Library Zend Framework dans votre dossier PHP include_path de votre système, généralement dans le dossier C:\PHP5\Pear avec une installation WAMP. Si vous ne savez pas où se trouve votre include_path, vous pouvez facilement le récupérer avec la commande :
C:\> php -i |
find " include_path "
Si pour une raison quelconque vous n'avez pas envie de mettre la librairie ZF dans votre include_path vous pouvez alternativement définir l'une des variables d'environnement ZEND_TOOL_INCLUDE_PATH_PREPEND ou ZEND_TOOL_INCLUDE_PATH vers le dossier où vous avez mis la librairie ZF.
IV-B. Installation sous Linux▲
Dans le package que vous avez décompressé et dans le répertoire bin, copiez les deux fichiers zf.sh et zf.php dans le même dossier où se trouve votre php.bin que vous pouvez retrouver avec la commande
mypc@user$
which php
Mettez la Librairie Zend Framework dans votre dossier PHP include_path que vous pouvez retrouver avec la commande suivante
mypc@user$
Php -i |
grep include_path
V. Utilisation de la ligne de commande▲
Une fois que votre outil est bien configuré, vous pouvez afficher l'écran d'aide avec la commande suivante si vous obtenez l'écran suivant c'est que vous avez correctement configuré votre outil et pouvez commencer à l'utiliser.
C:\> zf --help
ou
C:\>
zf ?
V-A. Créer un projet ▲
La première étape d'utilisation de Zend_Tool consiste à créer un projet, supposant que nous voulons créer un nouveau projet zfProject, dans l'invite de commande positionnez vous dans le dossier où vous voulez créer votre projet et tapez la commande suivante :
C:\> zf create project zfProject
Comme vous pouvez directement indiquer le chemin complet où sera créé votre projet
C:\> zf create project c:\wamp\www\zfProject
Essayez maintenant de voir le résultat dans votre navigateur, vous devrez avoir quelque chose qui ressemble à ceci.
Essayez maintenant de voir le contenu de notre dossier zfProject, vous devrez trouver une structure similaire a celle-ci
Remarquez que la commande create project nous a crée la structure des répertoires, le bootstrap, les contrôleurs index et Error avec les vues correspondantes. N'est-ce pas pratique.
V-B. Ajouter un contrôleur▲
Supposant que vous voulez ajouter un Contrôleur login a votre projet, comme pour la création de projet, il suffit de se positionner à la racine de votre projet et de taper la commande suivante :
C:\> Zf create controller login
V-C. Ajouter une action▲
Supposant que maintenant vous voulez ajouter une action logout a votre Controller login précédemment créé, toujours dans l'invite de commande tapez la commande suivante :
C:\> zf create action logout login
Il est important à savoir que vous ne pouvez pas ajouter de composant (Modules, Contrôleurs, actions?) à un projet qui n'est pas initialement créé avec Zend_Tool, car lors de sa création, sa structure est indexé dans un fichier caché .zfproject.xml qui permet à Zend_Tool_Project de gérer la hiérarchie des différentes ressources. Ce fichier est désigné comme étant le profil du projet et il est mis à jour à chaque fois qu'un nouveau composant vient s'ajouter au projet.
VI. Conclusion▲
Je trouve que cet outil est une valeur ajoutée au Framework, puisqu'il permet non seulement d'offrir un gain de temps au développeur, mais favorise également le maintien d'une structure propre et commune aux projets basés sur Zend Framework.
VII. Remerciements▲
Je tiens à remercier infiniment Julien Pauli, Guillaume Rossolini pour leurs conseils et Cl@udius pour sa relecture.