Au printemps 2006, l'éditeur de logiciels Zend Tech­no­lo­gies (qui ap­par­tient désormais à Rogue Wave Software) publia une première version pré-alpha du framework PHP Zend Framework sous la licence libre BSD. La société Zend Tech­no­lo­gies a été fondée par les dé­ve­lop­peurs Andi Gutmans et Zeev Suraski. Ces derniers s’étaient fait remarquer avec d’autres diplômés pendant leurs études à l'Ins­ti­tut de tech­no­lo­gie d'Israël pour avoir poursuivi le dé­ve­lop­pe­ment du langage de script PHP ini­tia­le­ment conçu par Rasmus Lerdorf. L’en­tre­prise a donc tra­vail­ler pendant des années à l’amé­lio­ra­tion du langage open source et publia notamment le Zend Engine, un in­ter­pré­teur PHP. A ce jour, Zend framework a été té­lé­chargé plus de 15 millions de fois. Avec la version 3 actuelle, qui a pris le relais de Zend Framework 2.0 en juillet 2016 et qui est in­com­pa­tible avec les versions pré­cé­dentes, des ap­pli­ca­tions et services Web basés sur PHP 5.6 (ou supérieur) peuvent être créés.

Qu'est-ce que Zend Framework ?

Le Zend Framework, qui est orienté objet, constitue une pla­te­forme de dé­ve­lop­pe­ment idéale pour les ap­pli­ca­tions Web grâce à sa large base. Les paquets PHP pro­fes­sion­nels intégrés dans le framework per­met­tent une grande sim­pli­fi­ca­tion qui a su con­vaincre les dé­ve­lop­peurs, même les plus ex­pé­ri­men­tés. Les fonc­tion­na­li­tés de base sont intégrées ra­pi­de­ment et avec un minimum d'effort de pro­gram­ma­tion né­ces­saire, ce qui vous permet de vous con­cen­trer sur la mise en place des fonc­tion­na­li­tés propres à votre ap­pli­ca­tion. Le framework utilise le ges­tion­naire de dé­pen­dances Composer, l'en­vi­ron­ne­ment de tests PHPUnit et Travis CI qui est un outil d’in­té­gra­tion continue utilisé pour concevoir et au­to­ma­ti­ser la pu­bli­ca­tion des projets GitHub. La com­mu­nauté PHP très active apporte un grand soutien à Zend Tech­no­lo­gies dans le dé­ve­lop­pe­ment et l'amé­lio­ra­tion continue de son framework open source. En outre, des sociétés telles que Google, Microsoft et Adobe, qui en­tre­tien­nent des par­te­na­riats avec Zend, proposent pour le framework dif­fé­rentes in­ter­faces vers leurs services Web.

Ce qu’offre le framework d’ap­pli­ca­tion Web

Plus de 60 paquets proposent l'ins­tal­la­tion standard de Zend Framework, qui s’effectue ra­pi­de­ment avec Composer et une simple ligne de code. Si le pack d'ins­tal­la­tion n'est pas déjà dans le ges­tion­naire de votre système d'ex­ploi­ta­tion, vous le trouverez sur la page d'accueil of­fi­cielle de Zend Framework. Autrement, vous pouvez également té­lé­char­ger puis utiliser les packs du framework sur GitHub. A noter, les fonctions suivantes peuvent être mises en place pour votre projet Web par les dif­fé­rents com­po­sants et classes :

  • Au­then­ti­fi­ca­tion / gestion uti­li­sa­teurs
  • Accès aux bases de données (CRUD)
  • Système de mes­sa­ge­rie
  • Lo­ca­li­sa­tion
  • In­dexa­tion de recherche
  • Mise en cache
  • Captcha
  • Ar­chi­tec­ture MVC

Le grand avantage de Zend Framework est que tous les com­po­sants sont pro­gram­més de sorte qu'ils ne dépendent pas des autres. La structure permet en effet de ne sé­lec­tion­ner que les modules né­ces­saires et de créer ainsi une pla­te­forme de dé­ve­lop­pe­ment selon vos pré­fé­rences. On parle de ce fait parfois de framework « Glue ». Que vous ayez besoin de la per­for­mance de l’ar­chi­tec­ture MVC, d'une interface CRUD pour l'accès aux bases de données, de capacités d'au­then­ti­fi­ca­tion pour dif­fé­rents groupes d'uti­li­sa­teurs ou du pack complet, vous pourrez faire les choix les plus adaptés à votre projet. Avec le framework de test PHPUnit, vous pouvez vérifier le fonc­tion­ne­ment des nouvelles pro­gram­ma­tions et détecter les points faibles et les dys­fonc­tion­ne­ments au cours du processus de dé­ve­lop­pe­ment. Zend Framework n’est pas une ar­chi­tec­ture flexible uni­que­ment pour soi : en effet, presque tous les com­po­sants peuvent être utilisés dans d'autres fra­me­works PHP, comme par exemple CakePHP ou Symfony.

PHP comme base de dé­ve­lop­pe­ment

Les dif­fé­rents com­po­sants du framework Zend sont basés sur PHP, ce qui fait du framework un bon choix pour les pro­gram­meurs visant à tra­vail­ler avec ce langage de script. Le logiciel open source peut de plus être utilisé sans avoir à acheter au préalable une licence.

Il est également très simple d’héberger et d'ex­ploi­ter une ap­pli­ca­tion Web PHP, à la fois par vos propres moyens ou par l’in­ter­mé­diaire d’un four­nis­seur externe, avec PHP faisant partie du ré­per­toire standard. De nombreux mode d’emploi, forums d'uti­li­sa­teurs et services de support sont de plus mis à dis­po­si­tion et mis à jour en dif­fé­rentes langues par une com­mu­nauté très efficace. Comme déjà mentionné, les membres de la com­mu­nauté et les dé­ve­lop­peurs ont également un rôle majeur à jouer dans le dé­ve­lop­pe­ment futur de Zend Engine et Zend Framework. Depuis la version 3, le Zend Framework est com­pa­tible avec PHP 7, orienté per­for­mance, ce qui permet de dé­ve­lop­per des ap­pli­ca­tions Web encore plus puis­santes. Comparé à PHP 5.6, la nouvelle version promet non seulement de doubler sa vitesse, mais aussi d'optimiser les besoins en mémoire des projets Web.

Le dé­ve­lop­pe­ment ultérieur de PHP, ayant subi dif­fé­rentes in­fluences, n'a toutefois pas toujours été pro­fi­table à la structure du langage de script. Con­trai­re­ment aux langages té­moig­nant d’une phi­lo­so­phie claire comme Ruby, l'orien­ta­tion de PHP a cons­tam­ment changé. Ini­tia­le­ment inspiré par Perl, et plus tard aussi par C, C++ et Java, le langage de script man­que­rait selon plusieurs critiques d’ho­mo­gé­néité. En par­ti­cu­lier, la dé­no­mi­na­tion des fonctions et la dis­po­si­tion des arguments sont tout sauf ex­pli­cites. Les pro­gram­meurs doivent faire preuve de beaucoup de patience pour apprendre le langage open source et l'uti­li­ser cor­rec­te­ment pour leur propre ap­pli­ca­tion Web. Si les premières approches peuvent sembler re­la­ti­ve­ment faciles, les étapes d’ap­pren­tis­sage se com­pli­quent toutefois ra­pi­de­ment étant donné que des concepts clairs manquent. L'ar­chi­tec­ture de Zend Framework a ainsi plutôt tendance à re­pré­sen­ter un obstacle, car, si les scripts finis per­met­tent de s’épargner des efforts en pro­gram­ma­tion au final, ils rendent le fond plus laborieux à com­prendre pour les débutants.

Zend Framework : ex­ten­si­bi­lité et offres de support

Bien que PHP ait des fai­blesses struc­tu­relles qui rendent le langage inu­ti­le­ment complexe sur certains points, il reste l'un des langages de pro­gram­ma­tion côté serveur les plus efficaces pour les projets Web. Le framework de Zend constitue de plus pour les dé­ve­lop­peurs confirmés un outil optimal pour accélérer les processus de travail. Des fonctions im­por­tantes peuvent non seulement être mises en place très fa­ci­le­ment dans votre propre ap­pli­ca­tion Web à l'aide des classes et com­po­sants, mais surtout être adaptées à vos propres besoins. De nombreux com­po­sants déjà tra­vail­lés, qui peuvent être té­lé­char­gés en plus du framework, peuvent par ailleurs con­si­dé­ra­ble­ment élargir la gamme de fonctions.

Avec Zend Framework, non seulement de larges pos­si­bi­li­tés s’offrent à vous, mais vous bé­né­fi­cie­rez en plus d’aides tout au long de vos démarches : de nombreux manuels en ligne, tutoriels et we­bi­naires sont proposés sur le site officiel, mais aussi par les membres de la com­mu­nauté Zend. De plus, il existe des listes de diffusion, canaux IRC et forums en dif­fé­rentes langues. Par con­sé­quent, si vous voulez savoir comment fonc­tionne l'ar­chi­tec­ture de l'ap­pli­ca­tion Web ou le langage de script PHP, vous aurez suf­fi­sam­ment de matériel à portée de main pour vous dé­brouil­ler. Le support technique du framework est également con­vain­cant : Zend prend en charge l'en­semble du processus de dé­ve­lop­pe­ment des dif­fé­rents com­po­sants et propose un support de formation sur trois ans pour les versions les plus im­por­tantes. Au cours de cette période, l'en­tre­prise pourra publier ré­gu­liè­re­ment des mises à jour mineures afin de corriger les bugs et les vul­né­ra­bi­li­tés éven­tuel­le­ment critiques.

Si vous découvrez certaines dé­fail­lances de sécurité ou des erreurs dans Zend Framework, vous pouvez les signaler vous-même grâce à un rapport GitHub ou par e-mail.

Les avantages et in­con­vé­nients de Zend Fra­me­works

Avec Zend Framework 3 et sa com­pa­ti­bi­lité à PHP 7, c’est une nouvelle ère qui s’ouvre ; l'équipe de dé­ve­lop­pe­ment a en effet fait une mise à niveau solide en termes de per­for­mance pour l'ar­chi­tec­ture ap­pli­ca­tive (également pour les anciens projets PHP 5). Jusque-là, la vitesse des ap­pli­ca­tions dé­ve­lop­pées faisait fré­quem­ment l’objet de critiques, problème auquel les équipes ont pu remédier. Cependant, l'uti­li­sa­tion du framework complet présente encore deux in­con­vé­nients majeurs : d'une part, en raison de sa structure complexe, le framework n'est pas adapté à la réa­li­sa­tion de petits projets tels qu'un simple site Web. D'autre part, faire ses premiers pas dans le framework et sa base de pro­gram­ma­tion PHP n’est pas chose facile. Il ne faut en effet pas sous-estimer le temps qui peut être requis pour se fa­mi­lia­ri­ser avec l'ar­chi­tec­ture et les dif­fé­rents com­po­sants. De plus, on notera que le framework n'a pas son propre en­vi­ron­ne­ment de test et doit donc s'appuyer sur le PHPUnit externe.

Les fonctions très variées sont à l’image des pos­si­bi­li­tés énormes du framework d’ap­pli­ca­tion Web. Les efforts né­ces­saires au départ pour s’habituer au programme sont donc gé­né­ra­le­ment rentables sur le long terme. En effet, vous ne commencez pas la pro­gram­ma­tion à zéro, mais vous pourrez vous baser sur des modèles déjà prêts à l'emploi. Vous ne devrez pro­gram­mer qu’une petite partie de votre ap­pli­ca­tion. Grâce à l’ar­chi­tec­ture MVC, la sé­pa­ra­tion de l'in­ter­face uti­li­sa­teur (GUI) et de la logique (la pro­gram­ma­tion pro­pre­ment dite) ne pose aucun problème. Ceci est un grand avantage pour les projets Web né­ces­si­tant ré­gu­liè­re­ment des ajus­te­ments en termes de con­cep­tion. Les plus grands avantages du framework Zend reposent cependant sur les tech­no­lo­gies Zend re­mar­quables et sa large com­mu­nauté d’experts qui ont assuré au framework une bonne stabilité et sécurité depuis des années.

Pour qui l’ar­chi­tec­ture PHP est-elle ap­pro­priée ?

Certains projets bien connus montrent comme Zend Framework peut être mis en place de manière très variable. Les systèmes Magento et Shopware, le système de gestion de contenu Pimcore, l'outil d'analyse Web Piwik et le logiciel de gé­néa­lo­gie Webtrees sont par exemple basés sur le framework PHP. En matière de CMS et de systèmes e-commerce, le schéma modulaire du framework est par­ti­cu­liè­re­ment important. En plus, vous aurez à dis­po­si­tion de nombreux in­ter­lo­cu­teurs possibles en cas de problème. De manière générale, on peut cependant affirmer que plus le projet Web voulu est petit, et moins le cadriciel sera utile. Si vous souhaitez créer un site Web d'en­tre­prise simple ou une page d'accueil per­son­nelle, il existe des solutions bien plus efficaces et qui né­ces­si­tent moins de res­sources. Vos pré­fé­rences en termes de langages in­for­ma­tiques jouent également un rôle décisif, l'uti­li­sa­tion de Zend Framework im­pli­quant obli­ga­toi­re­ment PHP, même si vous trans­fé­rez les com­po­sants vers d'autres fra­me­works. Alors que les dé­ve­lop­peurs ex­pé­ri­men­tés doivent s'ha­bi­tuer aux sim­pli­fi­ca­tions, les débutants ont la double charge d’apprendre d’une part PHP puis de com­prendre les com­po­sants préconçus. Autrement, il serait im­pos­sible d'uti­li­ser cor­rec­te­ment le framework pour son propre projet et de l'adapter en con­sé­quence.

Zend Framework : une structure de base flexible pour des projets PHP modernes

Si vous avez l'in­ten­tion de créer une ap­pli­ca­tion Web basée sur PHP et que vous souhaitez écrire vous-même chaque ligne de code, vous pourrez vous passer sans regret du framework Zend. Si vous re­cher­chez en revanche une as­sis­tance qui vous fera gagner du temps pendant le processus de dé­ve­lop­pe­ment, il vaut la peine de jeter un coup d'œil à la plate-forme de dé­ve­lop­pe­ment Zend. En effet, vous pourrez ainsi mettre en place une ap­pli­ca­tion Web en utilisant des paquets PHP prêts à l'emploi, sans avoir à réécrire le code entier depuis le début. Vous pouvez choisir librement votre système d'ex­ploi­ta­tion et votre serveur Web, car PHP est un langage de script pris en charge par n'importe quels pla­te­formes et logiciels modernes.

Depuis la version 3, Zend Framework prend en charge PHP 7, per­met­tant ainsi d’augmenter la vitesse des ap­pli­ca­tions créées avec cette structure d'ap­pli­ca­tion Web. Une com­mu­nauté de taille étant présente pour fournir de l'aide sur le langage de script et le framework, vos questions et problèmes ne resteront nor­ma­le­ment pas sans réponses. Cependant, l’en­goue­ment sur cette tech­no­lo­gie a mené des personnes ma­lin­ten­tion­nées à re­cher­cher des vul­né­ra­bi­li­tés dans Zend Framework et dans les ap­pli­ca­tions dé­ve­lop­pées. Avec l'aide de l'as­sis­tance offerte, il ne devrait toutefois pas être in­sur­mon­table d’écrire un code propre et sûr et ainsi de prévenir les attaques po­ten­tielles. De plus, tous les uti­li­sa­teurs du framework peuvent signaler les vul­né­ra­bi­li­tés dé­cou­vertes, de sorte qu'elles soient contrées au coup suivant.

Aller au menu principal