trouver le chemin des bonnes pratiques
TRANSCRIPT
![Page 1: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/1.jpg)
Zend FrameworkTrouver le chemin des bonnes pratiques
Webinar Zend Technologies25 Octobre 2011
Gauthier Delamarre, Professional Services Manager pour VA Consulting - www.vaconsulting.lu
avec
![Page 2: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/2.jpg)
Vous avez dit Zend Framework ?
2
![Page 3: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/3.jpg)
Donc, vous avez dit framework...
3
‣ Ce qu’est un framework- un ensemble de composants
- ... et de bonnes pratiques
- ... ainsi que de standards (nommage et codage)
‣ Ce que n’est pas un framework- un atelier de développement rapide (RAD)
- un générateur de code
![Page 4: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/4.jpg)
et Zend Framework ?‣Objet
- le code de Zend Framework est 100% objet
‣ Technologie- Zend Framework exploite le meilleur de PHP
‣ Souplesse- les liens entre les composants sont faibles
‣ Communauté- très importante, encadrée, milieu industriel
4
![Page 5: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/5.jpg)
Choisir Zend Framework‣ Raisons internes
- historique
- compétences pré-existantes
- besoins du projet
‣ Raisons externes- ressources disponibles
- formation
- accompagnement
5
![Page 6: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/6.jpg)
Avant de démarrer un projet...
6
![Page 7: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/7.jpg)
Adopter le bon état d’esprit
7
‣ Un framework est un outil, pas un concurrent- ne pas s’interroger sur la pertinence des
composants une fois le framework choisi
‣ Se concentrer sur le métier- la valeur ajoutée d’un projet est portée par la
logique métier
- l’architecture, qui n’a aucune valeur ajoutée, est confiée au framework
![Page 8: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/8.jpg)
Se mettre à niveau‣ S’assurer de maîtriser les pré-requis
techniques- particulièrement l’OOP
- interfaces
- classes abstraites
‣ Acquérir une bonne maîtrise du framework- connaître les composants existants
- connaître les standards applicables
‣ Dans les deux cas, il faut souvent se former
8
![Page 9: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/9.jpg)
Premiers pas avec ZF
9
![Page 10: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/10.jpg)
Choisir l’arborescence du projet
10
‣ Mode simple- MVC unique
- peut être généré par Zend_Tool
- réservé aux projets modestes
‣ Architecture modulaire- MVC multiple
- une arborescence MVC par module
- adaptée aux projets plus vastes
- facilite la réutilisabilité
![Page 11: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/11.jpg)
En parlant de réutilisabilité‣ ZF offre différents mécanismes de plugins
- helpers de vues et d’actions
- plugin de front controller
- form elements, decorators...
‣ Distinguer les plugins génériques des plugins métiers- créer un dépôt global pour les génériques
- ... et un autre dans l’arborescence du projet pour les plugins liés au métier
11
![Page 12: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/12.jpg)
Définition des standards‣ Les standards de nommage et de codage
garantissent la lisibilité du code- leur respect facilite la prise en main du projet
par un tiers : consultant, nouveau collaborateur
‣ ZF applique lui-même certain de ces standards- il est plus simple de s’y conformer (et parfois
obligatoire)
- les utiliser facilite également l’intervention d’un tiers
12
![Page 13: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/13.jpg)
Bonnes pratiques «illustrées»
13
![Page 14: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/14.jpg)
Controllers
14
![Page 15: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/15.jpg)
Controllers
14
‣ Bonne pratique- les contrôleurs ne doivent contenir que des
méthodes d’actions
![Page 16: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/16.jpg)
Controllers
14
‣ Bonne pratique- les contrôleurs ne doivent contenir que des
méthodes d’actions
‣ Raisons- créer une méthode dans un contrôleur limite
son utilisation à ce seul contrôleur
- interdit toute réutilisation de cette méthode dans un autre projet
![Page 17: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/17.jpg)
Controllers
14
‣ Bonne pratique- les contrôleurs ne doivent contenir que des
méthodes d’actions
‣ Raisons- créer une méthode dans un contrôleur limite
son utilisation à ce seul contrôleur
- interdit toute réutilisation de cette méthode dans un autre projet
‣ Implémentation- créer des actions helpers
![Page 18: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/18.jpg)
Models
15
![Page 19: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/19.jpg)
Models ‣ Bonne pratique
- ne pas mélanger la logique métier et l’accès aux données
15
![Page 20: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/20.jpg)
Models ‣ Bonne pratique
- ne pas mélanger la logique métier et l’accès aux données
‣ Raisons- les objets métiers qui accèdent aux données
ne peuvent pas être testés unitairement
- changer de couche d’accès aux données peut s’avérer très compliqué
15
![Page 21: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/21.jpg)
Models ‣ Bonne pratique
- ne pas mélanger la logique métier et l’accès aux données
‣ Raisons- les objets métiers qui accèdent aux données
ne peuvent pas être testés unitairement
- changer de couche d’accès aux données peut s’avérer très compliqué
‣ Implémentation- scinder les modèles entre métier et données
15
![Page 22: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/22.jpg)
Views
16
![Page 23: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/23.jpg)
Views‣ Bonne pratique
- ne pas créer de dépendances entre vues et objets métiers
16
![Page 24: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/24.jpg)
Views‣ Bonne pratique
- ne pas créer de dépendances entre vues et objets métiers
‣ Raisons- une telle dépendance empêche de paralléliser
les tâches
- une modification de l’objet métier implique un contrôle de toute les vues qui l’utilisent
16
![Page 25: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/25.jpg)
Views‣ Bonne pratique
- ne pas créer de dépendances entre vues et objets métiers
‣ Raisons- une telle dépendance empêche de paralléliser
les tâches
- une modification de l’objet métier implique un contrôle de toute les vues qui l’utilisent
‣ Implémentation- passer des tableaux de données aux vues
16
![Page 26: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/26.jpg)
Formulaires
17
![Page 27: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/27.jpg)
Formulaires‣ Bonnes pratique
- utiliser à 100% le mécanisme de rendu HTML des formulaires (via les décorateurs)
17
![Page 28: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/28.jpg)
Formulaires‣ Bonnes pratique
- utiliser à 100% le mécanisme de rendu HTML des formulaires (via les décorateurs)
‣ Raisons- l’affichage d’un formulaire est dépendant de
son état - les décorateurs en tiennent compte automatiquement
- conserve la souplesse du système de plugins
17
![Page 29: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/29.jpg)
Formulaires‣ Bonnes pratique
- utiliser à 100% le mécanisme de rendu HTML des formulaires (via les décorateurs)
‣ Raisons- l’affichage d’un formulaire est dépendant de
son état - les décorateurs en tiennent compte automatiquement
- conserve la souplesse du système de plugins
‣ Implémentation- echo $this->form; dans les vues !
17
![Page 30: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/30.jpg)
Conclusion / Questions
18
![Page 31: Trouver le chemin des bonnes pratiques](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5469dd47af7959ff128b58c4/html5/thumbnails/31.jpg)
Merci de votre participation !
19