
Contexte
Depuis Mars 2006 est apparu le Framework maison de chez Zend, pour PHP5. Pour rappel, Zend est une société qui commercialise tout un tas d’outils pour les entreprises, autour de PHP. Zend Framework est un d’entre eux si ce n’est qu’il n’est pas commercialisé : distribué sous “New BSD Licence”, il est gratuit, libre, conçu par une grande communauté de développeurs interessés dont je fais parti, piloté par Zend, et il propose génération de documents PDF, connecteurs vers de multiples services webs, connecteurs vers des
bases de données diverses et support de MVC…
On peut utiliser le Framework en tant que cadre de développement directif, ou l’utiliser dans le cadre d’un simple support bibliothécaire, à la manière de PEAR.
Le projet Zend Framework est en perpétuel développement, et certains composants sont développés par les entreprises intéressées : les Webservices Gdata sont développés par Google eux-mêmes, mais dans le respect de la licence du projet.
Zend Framework reprend en tout point le concept de PHP lui-même : libre, ouvert, simple, efficace et puissant : un vrai régal.
Préambule
Le Zend Framework (ZF) fait beaucoup de bruit sur la toile du développement PHP. Il sait se classer dans la vague des Framework “reconnus” sous PHP. Google le présente d’ailleurs parmi ses outils pour developpeurs. J’ai décidé de vous y faire goûter du bout des lèvres ;-).
Ce Framework a bien grandi. En l’espace d’un an, il a changé de licence pour s’ouvrir au développement
communautaire, et il accuse déjà une quarantaine de composants opérationnels. Il est vrai qu’à ses débuts, début 2006 (le projet date d’Octobre 2005), tout était différent. Beaucoup de refactorisation et de correction de bugs ont été faits. Une si belle progression n’aurait pu être possible sans un modèle de développement communautaire, mais bien architecturé.
Tout le monde peut reporter un bug sur le tracker, proposer ses idées, faire partager ses expériences, tout ceci orchestré par l’équipe de gestion du projet de Zend.
Personnellement, j’ai bien aimé mes débuts sous ZF, c’est en découvrant peu à peu sa structure et son articulation que j’ai décidé de contribuer un peu, tout d’abord via ce tutoriel de présentation. Mon blog regorge d’informations diverses concernant ZF, et j’écris aussi d’autres articles ou ateliers techniques. ZendFramework représente aussi une partie de mon travail à titre professionnel, en effet je suis formateur sur ce Framework et j’aide à son déploiement ou son utilisation dans le milieu professionnel en consulting architectural.
Je bosse sous ce Framework depuis environ Octobre 2006 (0.2), et je suis de près tout ce qui le touche, notamment son développement actuel qui tend à se rapprocher d’un style Ruby On Rails, de par certaines caractéristiques. Nul doute que les programmeurs habitués à du “full object”, ne seront pas dépaysés (les adeptes de Java par exemple).
Je suis contributeur, je participe donc au développement de certains composants ainsi qu’à la correction de bugs et à l’amélioration de certaines fonctions. Il fallait bien un membre du club developpez.com qui mette les mains dedans, et Zend a bien apprécié le geste en plus ;-).
A la tête du Zend Framework, on trouve Andi Gutmans, qui n’est autre qu’un des 2 architectes responsables du Zend Engine, le moteur de PHP ayant succédé au projet initialement conçu par Rasmus Lerdof.
Le but de Zend est simple : faire de ZF un framework calqué sur PHP : aussi simple, intuitif, et puissant, que le langage PHP lui-même, et je dois dire que pour le moment, c’est nettement le cas !
Certes il existe des tonnes de frameworks dans l’univers de PHP, et des bons en plus, mais on peut dire du Zend Framework qu’il est amené à devenir la brique que tout développeur PHP sera à même de savoir utiliser, surtout dans un environnement professionnel.
Car c’est bien là que Zend intervient : l’entreprise vend du support et des services autour de produits, eux, libres : PHP d’abord, et aujourd’hui : ZendFramework. Une entreprise est bien plus rassurée lorsqu’un support professionnel est présent derrière un produit, à fortiori libre. Passer le framework sous une licence “ouverte” est donc bienvenu de la part de Zend.
ZF n’est pas fermé et peut se relier à d’autres Frameworks; de même , il y a 2 moyens d’utiliser ZF :
- en “glue” : vous utilisez uniquement les composants dont vous avez besoin, ponctuellement, à la manière de PEAR.
- Autre méthode: “full-stack” : vous décidez dès le départ de bâtir votre architecture entière sur ZF.
Cette perméabilité de Zend Framework en fait sa force ultime : vous pouvez doucement apprendre à le maitriser, avant de totalement l’utiliser, à ne plus pouvoir vous en passer; car ZF a bel et bien pour objectif de répondre aux besoins les plus redondants du développement de sites Internet en PHP
ZF est la “surcouche” fonctionnelle de PHP5, testé, sécurisé, développé et pensé par des ingénieurs, architectes et développeurs d’importance, le tout dans un esprit collaboratif, libre et open source.
L’AFUP, Association Française des Utilisateurs de PHP, dont je suis membre, a organisé début décembre 2006 une réunion ayant pour thème le Framework de Zend. Zeev Suraski était présent. Je vous revoie sur cette page pour plus d’infos, et pour télécharger les slides. Il ne s’agit pas ici de dresser un comparatif avec d’autres Frameworks PHP, mais tout simplement un avant goût sous forme de mini tutoriel, qui va s’étendre profondément sur certains points, ceci dans le but de faciliter votre apprentissage, et ce quel que soit votre niveau d’expérience dans la programmation sous Framework.
Vous allez au fur et à mesure ressentir un fait avéré : le ZendFramework offre une souplesse de programmation vraiment inégalée actuellement.
Introduction
Un Framework apporte un cadre standard pour le développement d’applications à interface web.
Il agrège différentes classes, ce qui augmente la couverture fonctionnelle d’un langage tout en en simplifiant sa manipulation.
Il permet à plusieurs personnes (notamment en Entreprise) de s’organiser autour d’un projet, quelle que soit sa taille.
Il introduit des règles de codage et d’architecture qui sont là pour faire en sorte que toutes les personnes relatives au projet parlent la même langue. Tous les développeurs vont ainsi écrire du code à partir du même cadre de travail, et l’échange des données entre eux est très facilité.
Les architectes et les chefs de projet s’y retrouvent aussi, car la puissance de la programmation orientée objet leur permet d’utiliser des méthodes connues et ayant fait leurs preuves, comme la modélisation UML par exemple.
La conception objet permet aussi un fort découplage applicatif, la réutilisabilité maximale du code, et favorise grandement les étapes de test et de gestion de la qualité d’un produit.
Avec à ce jour 48 packages fonctionnels; le Zend Framework propose “une collection modulaire de classes PHP 5 qui simplifient les tâches courantes du développeur”.
Il s’agit pour l’essentiel de fonctionnalités très utilisées comme une couche d’abstraction de bases de données (fondée principalement sur PDO), le support de MVC, la génération de documents PDF, l’envoi d’e-mails, la gestion de flux de syndication Atom et RSS, la gestion de l’internationalisation…
Le Zend Framework intègre aussi des “connecteurs” pour les services en ligne de Yahoo!, Google, Amazon, Flickr.
On peut noter aussi une classe de gestion des dates, un package complet pour l’indexation de contenu basé sur le célèbre moteur Lucène de l’Apache Group, tout un tas d’outils facilitant l’internationalisation, les sessions, etc.
Pour s’assurer du succès de son Framework, Zend s’est appuyé sur un modèle participatif et communautaire impliquant plus de 180 participants au nombre desquels figurent de grands acteurs comme Yahoo!, Google, IBM et General Electric. La concision du code qu’apporte un Framework de haut niveau, plus fonctionnel que technique, augmente la productivité des développeurs. Par exemple, il faut environ 15 lignes de code PHP pour afficher un flux RSS, tandis que 5 suffisent avec le Zend Framework.
Télécharger le PDF complet
Commentaires récents