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