SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
avec


            Zend Framework
               Trouver le chemin des bonnes pratiques

                       Webinar Zend Technologies
                           25 Octobre 2011

                   voir le webinar complet en ligne
Gauthier Delamarre, Professional Services Manager pour VA Consulting - www.vaconsulting.lu
Vous avez dit Zend Framework ?




                                 2
Donc, vous avez dit framework...
‣ 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


                                                     3
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
Choisir Zend Framework
‣ Raisons internes
  - historique
  - compétences pré-existantes
  - besoins du projet
‣ Raisons externes
  - ressources disponibles
    - formation
    - accompagnement


                                 5
Avant de démarrer un projet...




                                 6
Adopter le bon état d’esprit
‣ 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


                                                       7
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
Premiers pas avec ZF




                       9
Choisir l’arborescence du projet
‣ 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é
                                        10
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
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
Bonnes pratiques «illustrées»




                                13
Controllers
‣ 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
                                                     14
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
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
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
Conclusion / Questions




                         18
Merci de votre participation !

      voir le webinar complet en ligne




                                         19

Contenu connexe

Plus de Zend by Rogue Wave Software

Building and managing applications fast for IBM i
Building and managing applications fast for IBM iBuilding and managing applications fast for IBM i
Building and managing applications fast for IBM iZend by Rogue Wave Software
 
Speed up web APIs with Expressive and Swoole (PHP Day 2018)
Speed up web APIs with Expressive and Swoole (PHP Day 2018) Speed up web APIs with Expressive and Swoole (PHP Day 2018)
Speed up web APIs with Expressive and Swoole (PHP Day 2018) Zend by Rogue Wave Software
 
The Sodium crypto library of PHP 7.2 (PHP Day 2018)
The Sodium crypto library of PHP 7.2 (PHP Day 2018)The Sodium crypto library of PHP 7.2 (PHP Day 2018)
The Sodium crypto library of PHP 7.2 (PHP Day 2018)Zend by Rogue Wave Software
 
Develop web APIs in PHP using middleware with Expressive (Code Europe)
Develop web APIs in PHP using middleware with Expressive (Code Europe)Develop web APIs in PHP using middleware with Expressive (Code Europe)
Develop web APIs in PHP using middleware with Expressive (Code Europe)Zend by Rogue Wave Software
 

Plus de Zend by Rogue Wave Software (20)

Develop microservices in php
Develop microservices in phpDevelop microservices in php
Develop microservices in php
 
Speed and security for your PHP application
Speed and security for your PHP applicationSpeed and security for your PHP application
Speed and security for your PHP application
 
Building and managing applications fast for IBM i
Building and managing applications fast for IBM iBuilding and managing applications fast for IBM i
Building and managing applications fast for IBM i
 
Building web APIs in PHP with Zend Expressive
Building web APIs in PHP with Zend ExpressiveBuilding web APIs in PHP with Zend Expressive
Building web APIs in PHP with Zend Expressive
 
To PHP 7 and beyond
To PHP 7 and beyondTo PHP 7 and beyond
To PHP 7 and beyond
 
Speed up web APIs with Expressive and Swoole (PHP Day 2018)
Speed up web APIs with Expressive and Swoole (PHP Day 2018) Speed up web APIs with Expressive and Swoole (PHP Day 2018)
Speed up web APIs with Expressive and Swoole (PHP Day 2018)
 
The Sodium crypto library of PHP 7.2 (PHP Day 2018)
The Sodium crypto library of PHP 7.2 (PHP Day 2018)The Sodium crypto library of PHP 7.2 (PHP Day 2018)
The Sodium crypto library of PHP 7.2 (PHP Day 2018)
 
Develop web APIs in PHP using middleware with Expressive (Code Europe)
Develop web APIs in PHP using middleware with Expressive (Code Europe)Develop web APIs in PHP using middleware with Expressive (Code Europe)
Develop web APIs in PHP using middleware with Expressive (Code Europe)
 
Middleware web APIs in PHP 7.x
Middleware web APIs in PHP 7.xMiddleware web APIs in PHP 7.x
Middleware web APIs in PHP 7.x
 
Ongoing management of your PHP 7 application
Ongoing management of your PHP 7 applicationOngoing management of your PHP 7 application
Ongoing management of your PHP 7 application
 
Developing web APIs using middleware in PHP 7
Developing web APIs using middleware in PHP 7Developing web APIs using middleware in PHP 7
Developing web APIs using middleware in PHP 7
 
The Docker development template for PHP
The Docker development template for PHPThe Docker development template for PHP
The Docker development template for PHP
 
The most exciting features of PHP 7.1
The most exciting features of PHP 7.1The most exciting features of PHP 7.1
The most exciting features of PHP 7.1
 
Unit testing for project managers
Unit testing for project managersUnit testing for project managers
Unit testing for project managers
 
The new features of PHP 7
The new features of PHP 7The new features of PHP 7
The new features of PHP 7
 
Deploying PHP apps on the cloud
Deploying PHP apps on the cloudDeploying PHP apps on the cloud
Deploying PHP apps on the cloud
 
Data is dead. Long live data!
Data is dead. Long live data! Data is dead. Long live data!
Data is dead. Long live data!
 
Optimizing performance
Optimizing performanceOptimizing performance
Optimizing performance
 
Resolving problems & high availability
Resolving problems & high availabilityResolving problems & high availability
Resolving problems & high availability
 
Developing apps faster
Developing apps fasterDeveloping apps faster
Developing apps faster
 

Webinar - Zend Framework - Trouver le chemin des bonnes pratiques

  • 1. avec Zend Framework Trouver le chemin des bonnes pratiques Webinar Zend Technologies 25 Octobre 2011 voir le webinar complet en ligne Gauthier Delamarre, Professional Services Manager pour VA Consulting - www.vaconsulting.lu
  • 2. Vous avez dit Zend Framework ? 2
  • 3. Donc, vous avez dit framework... ‣ 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 3
  • 4. 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
  • 5. Choisir Zend Framework ‣ Raisons internes - historique - compétences pré-existantes - besoins du projet ‣ Raisons externes - ressources disponibles - formation - accompagnement 5
  • 6. Avant de démarrer un projet... 6
  • 7. Adopter le bon état d’esprit ‣ 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 7
  • 8. 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
  • 10. Choisir l’arborescence du projet ‣ 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é 10
  • 11. 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
  • 12. 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
  • 14. Controllers ‣ 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 14
  • 15. 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
  • 16. 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
  • 17. 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
  • 19. Merci de votre participation ! voir le webinar complet en ligne 19