Zend PHP Framework
Transcription
Zend PHP Framework
DUJARDIN ROMISCH Zend PHP Framework 1) Qu'est ce qu'un Framework ? Un Framework est en quelque sorte une boîte à outils conçu par des développeurs pour optimiser le travail d'autres développeurs. En effet il est fait pour aider les programmeurs dans leur travail : le Framework vise la productivité maximale du programmeur qui va l'utiliser. Le Framework est organisé en composants, il permet également aux développeurs de se concentrer sur les parties les plus importantes du programme. L'utilisation d'un Framework a) Les avantages Code propre : Il évite au programmeur de refaire ce qui a déjà été fait Le code est stable et flexible car il a été développé et testé par des professionnels Fonctionnement : Le code PHP est séparés du code HTML, permettant à plusieurs personnes de travailler dessus en simultané La communauté : C'est grâce à elle que le code est stable Le code est maintenu avec des mises à jours régulières (pour les Framework les plus utilisés) Les failles de sécurité sont vite comblées La documentation est de qualité et à jour b) L'inconvénient Le principal inconvénient à utiliser un Framework est sa difficulté d'apprentissage. Chaque Framework a des composants différents et de complexités différentes. Il est donc difficile de « basculer » d'un Framework à un autre. 2) Zend Framework Zend Framework est un Framework PHP composé de librairies qui peuvent être uitilisées avec le Framework ou independament. LP Systèmes Informatiques et Logiciels – IDSE – Parcours Jeux Vidéo DUJARDIN ROMISCH a) Les avantages Prise en charge de très nombreux éléments Optimisation du temps de travail Utilisé par de nombreuses entreprises (compétence valorisante sur un CV) Support de l'application plus facile b) Les inconvénients Nécessite un bon niveau en PHP Inutile pour les "petits" projets Fonctionnement général Le Framework Zend PHP est souvent appelé le Framework « brique » par rapport aux autres Framework qui sont plus englobant. C'est un ensemble de composants (ou packages) utilisables individuellement. Zend Framework n'impose pas de structure, il est plus maniable et permet une plus grande souplesse. Il est possible de développer nos propres outils pour les adapter à notre besoins. La ou d'autres Framework proposent ces outils en natif, la bonne conception de l'architecture du programme avec Zend est donc indispensable. Basé sur un design pattern MVC Le design pattern est une manière de résoudre un problème de programmation, généralement par la programmation orienté objet. Au fil du temps, certaines conceptions sont devenues récurrentes face à certaines situations et elles ont été documentées, nommées et standardisées. Le Design Pattern MVC est une façon de s’organiser lors de la conception d’un projet pour faciliter la tâche aux différents intervenants lors de la conception, la mise à jour ou le débogage. L'architecture MVC sépare trois choses : Modèle : la manière d'accéder aux données Vue : l'interface entre l'homme et la machine Contrôleur : elle traite les données et les transmet à la vue Les contrôleurs permettent de répondre aux actions de l'utilisateur. Chaque contrôle est associé à une vue : cette dernière permet de présenter l'information retournée à l'utilisateur. Source : « http://apprendre-creer-sites.com/php/design-pattern-mvc-php.php » Principaux composants a) Composants de configuration "Zend_config": Ce composant permet de relire des configurations définies dans différents types de fichiers. Les classes exposent une interface basée sur l'accès à des attributs d'objets. LP Systèmes Informatiques et Logiciels – IDSE – Parcours Jeux Vidéo DUJARDIN ROMISCH "Zend_loader": Assure le chargement automatique et dynamique des fichiers ou des classes. Il accepte d'explorer les chemins implicites d'accès aux entités à charger et lève une exception en cas d'échec. "Zend_registry": Fournit une solution souple d'enregistrement et d'accès aux données globales d'une application. Les méthodes et d'accès implémentent les interfaces "Countables" et "Iterator" en plus des accès habituels aux tableaux. b) Composants console "Console_gétopt" est une interface orientée objet qui permet aux applications lancées depuis la ligne de commande d'un terminal de disposer d'un mécanisme puissant pour déclarer et récupérer les arguments et les options de la ligne de commande. "Eilter" est un composant puissant et simple à utiliser dont les classes facilitent le développement d'applications sûres. Elles fournissent les outils de base pour filtrer les données en entrée. c) Composants d'accès aux données "Zend_db" est une couche d'accès aux données qui expose les interfaces pour utiliser PDO et d'autres extensions de bases de données PHP. "Zend_db_Table" implémente les patrons de conception "table data gateway" et "Row data gateway". Il sait obtenir automatiquement les méta données d'une table et permet de construire des requêtes par valeurs. "Zend_db_profiler" permet d'analyser le comportement des requêtes pour en déduire leurs performances et prendre des décisions pour améliorer leur éfficacité. "Zend_cache" est une solution flexible pour mettre en cache des données de plusieurs catégories différentes. Il fournit la possibilité d'utiliser de nombreux moyens de stockage. d) Composants MVC "Controller" et "View", l'association des classes de ces deux composants permet l'implémentation simple et extensible de patron MVC "Layout" est un composant qui peut fonctionner indépendament ou en synergie avec les deux composants précédents. e) Composants de confidentialité "Acl" fournit une solution simple, efficace, et flexible pour implémenter les listes de contrôle d'accès (Access control lists ou ACL) et la gestion des privilèges d'accès aux ressources du site. Il définit les ressources et les rôles et simplifie la définition des règles de contrôle d'accès. "Auth" est un API d'authentification et propose des adaptateurs pour les modes d'authentification. LP Systèmes Informatiques et Logiciels – IDSE – Parcours Jeux Vidéo DUJARDIN ROMISCH "Validate" est un composant dont les classes permettent de valider des données en vérifiant qu'elles sont conformes à des spécifications. f) Composants d’internationalisation "Locale" permet la mise en forme des nombres, la normalisation des dates et des durées, le calcul sur les unités monétaires selon les usages régionaux. "Currency" est spécialisé dans les traitements des données monétaires. "Date" fait de même pour les dates. C'est un composant puissant et aux fonctionnalités multiples. "Measure" permet de convertir des mesures exprimées dans différentes unités et de réaliser les opérations usuelles et les comparaisons. "Translate" fournit une interface orientée objet pour l'accès au stockage des traductions des messages et corrige quelques imperfections des bibliothèques "gettext" de GNU. Comparaison avec CakePHP CakePHP Zend - PHP 4 - MVC - Puissants outils de génération de code - Plus de contrôle de design - Capacité de scaffolding - Support de services Web LP Systèmes Informatiques et Logiciels – IDSE – Parcours Jeux Vidéo