Zend Framework 2 le MVC robuste et accessible

Zend Framework 2 est mon nouveau dada en développement d’application Web. J’ai passé des jours entiers à parcourir le web à la découverte de nouvelles astuces pour améliorer mes connaissances et parfaire mon apprentissage et j’ai un réel plaisir à développer dessus.

Moi-même étant issu du monde Java/J2EE, je suis bien familiarisé avec l’architecture MVC (Model / View / Controller) ainsi que l’outil Maven pour la gestion des dépendances sur un projet J2EE. Zend Framework offre toutes ces fonctionnalités et c’est le Composer qui joue le rôle de gestionnaire de dépendances, parfaitement intégré avec GIT.

La découverte du framework Zend a été pour moi une révélation. Je ne croyais pas le monde PHP avoir autant évolué en si peu de temps au point de ne plus avoir grand chose à envier au J2EE.

D’abord au niveau du langage PHP lui-même : la gestion des namespace (équivalents aux « packages » en Java), la gestion des objets avec ses interfaces, les héritages, les annotations mais aussi quelque chose qui n’existe pas en Java : les « traits ». Ce sont des sortes d’implémentations réutilisables de classes en classes. Je ne vois plus le PHP de la même manière que quelques années plus tôt.

D’autre part, le gros avantage du PHP est qu’il est proposé dans la quasi-totalité des hébergements Web et dès les premiers prix ce qui réduit drastiquement le coût d’exploitation des applications. Aussi, les ressources demandées par une application PHP sur un serveur PHP sont souvent bien moindre que leur équivalent Java où une simple machine virtuelle consomme déjà du processeur et de la mémoire.

En ce qui concerne le framework, ce dernier embarque tout le nécessaire pour développer des applications Web très riches et fonctionnelles en un minimum de temps. D’architecture extrêmement modulaire, de nombreuses extensions open-source facilitent la vie du développeur notamment mes 2 préférées actuellement :

  • Doctrine : un ORM (Object Relational Mapping) qui, avec de simples annotations est capable de gérer vos entités de base de données, et presque toute votre couche « Model » en fait. Vous pouvez même par une simple commande générer toutes les tables, relations, contraintes directement vers votre base de données en rapport à ce que vous avez déclaré dans vos objets PHP.
  • BjyAuthorize : Un gestionnaire de contrôle d’accès très avancé vous permettant de définir avec précision « qui à le droit de faire quoi sur quoi » dans votre application. Vous pourrez même générer vos menus d’applications et d’autres éléments en fonction de ces droits.

Pour apprendre le framework, il y a énormément de ressources sur le net, par contre la plupart sont en anglais, mais si vous êtes développeur, vous y êtes forcément habitué.

Pour ma part, j’ai suivi le tutoriel en ligne Getting Started sur le site officiel de Zend Framework et me suis ensuite acheté un livre spécialisé pour continuer mon apprentissage. Il n’est pas nécessaire d’utiliser le serveur Zend, un simple serveur PHP suffit, de même qu’un Eclipse PDT comme IDE, configuré avec XDebug, saura vous fournir un environnement complet et fonctionnel pour développer votre application. Personnellement j’utilise également une extension Firefox pour faciliter l’intégration du débogueur XDebug : Easy XDebug 0.7.0.

Bon, assez discuter, allez pisser du code maintenant ! LOL.

Vous aimerez aussi...

2 réponses

  1. bvrignaud dit :

    Excellent, ça fait envie !

    Faudra vraiment que je mette à fouiller composer un jour …

    • Bertrand dit :

      Oui ! C’est pas si compliqué que cela. Ça se résume à 2 commandes :
      php composer.phar require <vendor/package>:<version>
      php composer.phar remove <vendor/package>

      Sur Linux, tu peux même facilement créer une commande système pour remplacer la frappe de « php composer.phar (…) » par un simple « composer » :
      mv composer.phar /usr/local/bin/composer

      Tout est expliqué dans le Getting Started.

      Pour une utilisation plus avancée, tu peux développer ton propre module, le déposé sur un dépôt perso ou sur GitHub et y faire appel quand tu veux (à condition de déclarer ce dépôt dans composer).

      C’est vraiment bien fait.

Laisser un commentaire