Recherche sur le blog

samedi 28 août 2010

[Web] Zend Framework : Structure d'un projet

Vous avez déjà pu découvrir sur ce blog le fonctionnement très basique d'une application développée avec le framework "Zend". Lorsque l'on crée un projet avec les outils fournis, nous retrouvons une structure en répertoires, qui contiennent chacun un ensemble de fichiers et/ou de sous-dossiers. Voici une description très sommaire du contenu d'un projet de départ.


On remarque donc ici que chaque élément de l'architecture "Modèle-Vue-Contrôleur" (ou MVC) a sa place dans un dossier bien spécifique du projet. D'autres éléments comme des formulaires ou des layouts (pour uniformiser la présentation du site web) peuvent aussi être ajoutés au dossier "application". Tout est donc bien séparé, pour permettre aux développeurs de travailler aisément dans le code sans toucher à d'autres éléments du projet. Cela peut être même très utile lorsque l'on souhaite utiliser des technologies comme SVN pour travailler avec des révisions de fichiers.

[Web] Zend Framework... pour du PHP plus simple?

Durant le travail de fin d'études, un ami et moi avons eu l'opportunité de découvrir les différentes fonctionnalités du célèbre "Zend Framework". Pour la plupart d'entre vous ce nom n'évoque sans doute rien de très concret pour vous. Et pour votre grand bonheur à tous, je m'en vais vous en faire une description assez brève.

Un framework consiste en un ensemble de librairies. En l'occurence dans le cas de "Zend Framework", c'est un ensemble de librairies pour PHP version 5. Cet ensemble offre diverses fonctionnalités (que PHP inclut déjà de base) qui ont été simplifiées pour une utilisation aisée. Parmi ces librairies, nous avons la possibilité de générer des formulaires HTML plus rapidement, vérifier la validité d'une adresse email sans utiliser aucune expression régulière, etc. Cependant il est parfois préférable d'utiliser directement l'implémentation faite par les développeurs de PHP ou même d'utiliser soi-même des formulaires HTML. Nous verrons plus tard dans ce blog pourquoi il est parfois plus facile d'utiliser les composants classiques.

 "Zend Framework" est basé sur une architecture "Modèle-Vue-Contrôleur" ou encore MVC. Cette architecture permet de séparer la logique métier d'une application et la présentation. Plus concrètement et d'une manière assez générale, nous avons :
  • Le modèle, qui est en fait la couche d'accès aux données (par exemple, une base de données, des fichiers, etc.). La plupart du temps les modèles intègrent de la logique métier (du code) pour l'accès aux données (par exemple, pour créer une connexion à une base de données MySQL).
  • La vue, qui est en fait ce qu'on présente à l'utilisateur. Elles permettent de récupérer les données et de les afficher au client de différentes manières. C'est à l'infographiste de gérer au mieux la présentation des données.
  • Le contrôleur, qui gère tout l'ensemble. C'est par lui que passent les requêtes du client. Il contient la logique métier et permet d'accéder au modèle pour récupérer les données, de les passer à la vue qui ensuite les affichera.
Schématiquement,


On aperçoit clairement la requête client faite au contrôleur de l'application. Celui-ci fait une demande au modèle pour récupérer les données (depuis une base de données par exemple) et rapatrie celles-ci. Ensuite ces données sont envoyées à la vue et il sera alors possible de faire un affichage (sous forme de liste par exemple). La vue sera renvoyée au client une fois qu'elle aura été générée.

Vous l'aurez donc compris : cet ensemble très complet offre de nombreuses fonctionnalités mais aussi une implémentation du modèle MVC ce qui permet à une équipe de développeurs et d'infographistes de coopérer sur un projet sans rencontrer trop d'embuches. Dans les articles à venir, vous pourrez découvrir plus sur ce fameux framework !

[Info] Nouveau blog

Bonjour à vous chers internautes. 

Me voici de retour avec un nouveau blog qui me permettra de partager avec vous mes projets ainsi que les évolutions des diverses technologies (point de vue programmation surtout). Au programme : Java, .NET, PHP et encore bien d'autres ! N'hésitez donc pas à revenir faire un tour de temps à autre.