Upload
phungkiet
View
230
Download
0
Embed Size (px)
Citation preview
Le contexte GSB Le contexte GSB et le modet le modèèle le
MVCMVC
15 mai 2012 Inter-Académiques 1
PHP dans le WEBPHP dans le WEB• Toujours un très fort taux de pénétration du phpdans les applications web
W3Tech février 2012
15 mai 2012 Inter-Académiques 2
Des architectures diversesDes architectures diverses
• Les applications « bazar » : • on trouve tout dans un bazar
• Les plus nombreuses
• Réutilisables par copier/coller de bouts de code
• Maintenance très délicate
• Difficilement évolutives
15 mai 2012 Inter-Académiques 3
Des architectures diversesDes architectures diverses• Les CMS
Enquête Smile 2012
15 mai 2012 Inter-Académiques 4
Des architectures diversesDes architectures diverses
• Les CMS
Enquête Smile 2012
15 mai 2012 Inter-Académiques 5
PHP dans le WEBPHP dans le WEBDes architectures diversesDes architectures diverses
• Les CMS
Enquête Smile 2012
15 mai 2012 Inter-Académiques 6
Des architectures diversesDes architectures diverses• Les CMS
• Tout est en base !!
• A l’origine pour des sites de back-office collaboratif( Edition)
• Supporte maintenant des modules spécifiques « métiers » (vente en ligne).
• Nécessité d’une solide gestion de cache- Au niveau de la page- Au niveau d’un module- Au niveau des images
15 mai 2012 Inter-Académiques 7
Des architectures diversesDes architectures diverses
• Tout HTML en frontal !!
• Des sites d’éditions : JDD, Europe1, Paris-Match
• Du PHP en back-office
• Des fichiers HTML en frontal, mis à jour régulièrement
15 mai 2012 Inter-Académiques 8
Des architectures diversesDes architectures diverses
• Un FrondEnd cache
• Un logiciel (Varnish par exemple) placé devant le serveur HTTP gère en mémoire et/ou sur disque les caches des pages HTML,
• Souvent des fermes de serveurs de cache
• Les délais de maj des caches sont paramétrables
• Joue le même rôle que dans l’architecture précédente, mais les pages sont générées en mémoire et non sur disque
15 mai 2012 Inter-Académiques 9
Le modLe modèèle MVCle MVC• Les avantages : maintenance, évolution, faible couplage
• rappel, le modèle classique :
Développer.com
15 mai 2012 Inter-Académiques 10
Le modLe modèèle MVCle MVC• Version mode déconnecté :
Aucun besoin de
notification
15 mai 2012 Inter-Académiques 11
Le modLe modèèle MVCle MVC• Architecture de plus en plus utilisée
o Dans les CMS (Drupal 7)
o Dans les framework Zend, Symphony, cake…
o Chez MS maintenant avec ASP.Dotnet MVC qui remplace les webForms, installé par défaut dans VS2010
o Une littérature fournie sur le sujet
15 mai 2012 Inter-Académiques 12
Le modLe modèèle MVCle MVC
• Cette architecture a un coût : l’utilisation des ressources en RAM ; le « contrôleur » construit d’abord en mémoire une représentation de la requête avant de la servir à la vue
• Couplée à des mécanismes de caches prévus dans les Framework ou à rajouter en FrontEnd
15 mai 2012 Inter-Académiques 13
Le modLe modèèle MVC dans GSBle MVC dans GSB
• Présentons d’abord rapidement le contexte…
15 mai 2012 Inter-Académiques 14
Les normes de dLes normes de dééveloppementveloppement
• A5.2.1 Exploitation des référentiels, normes et standards adoptés par le prestataire informatique
15 mai 2012 Inter-Académiques 15
Normes mises en Normes mises en oeuvreoeuvre• Règles d’écriture du code (code bien formé)
• Chaque ligne doit comporter au plus une instruction.
• Le pas d’indentation doit être fixe et correspondre à 4 caractères.
• Il est recommandé que la longueur des lignes ne dépasse pas 75 à 85 caractères.
• La ligne est découpée avant un opérateur :
• Standardiser les espaces :
15 mai 2012 Inter-Académiques 16
Normes mises en Normes mises en oeuvreoeuvre• Règles de nommage
• Noms des fichiers :
• Noms des variables :L'identificateur d’une variable ou paramètre indique le rôle joué dans le code
• Noms des fonctions :L'identificateur d’une fonction est un verbe, ou groupe verbal.
• Nommage des champs :
15 mai 2012 Inter-Académiques 17
Normes mises en Normes mises en oeuvreoeuvre• Règles de bon codage
• Chaque fonction doit réaliser un et un seul traitement
• Les fonctions ne doivent pas comporter un trop grand nombre de paramètres. La limite de 5 à 6 paramètres est recommandée
• Il est recommandé d’utiliser les parenthèses à chaque fois qu’une expression peut prêter à confusion
• Les instructions imbriquées doivent être évitées quand cela est possible
15 mai 2012 Inter-Académiques 18
Normes mises en Normes mises en oeuvreoeuvre• Règles de sécurité
• Utilisation de la fonction addslashes pour échapper les caractères particuliers (‘, « ,…) et l’insertion en base
• Pour éviter des effets néfastes, les caractères réservés doivent être traduits en symboles nommés HTML (aussi appelés entités HTML). Ainsi, le caractère < doit être transformé en <, > en > , etc.
• La fonction PHP prédéfinie htmlspecialchars prend en charge ce traitement.
15 mai 2012 Inter-Académiques 19
Normes mises en Normes mises en oeuvreoeuvre• Règle de conformité
• Fichiers (ANSI/UTF8)
• Préambule XML, validateur
• Documentation du code conforme
15 mai 2012 Inter-Académiques 20
Normes mises en Normes mises en oeuvreoeuvre• Du code pour être utilisé : la documentation
• Du code pour être maintenu : les commentaires
15 mai 2012 Inter-Académiques 21
Normes mises en Normes mises en oeuvreoeuvre
15 mai 2012 Inter-Académiques 22
GSB et MVCGSB et MVC• Mes sources principales
• Un document de Serge Tahé (2004-2008) qui présente une implémentation détaillée de l’architecture MVC pour php (en mode procédural -sans objet-) : http://tahe.developpez.com/web/php/mvc/
• Le travail d'Olivier Cappuozo autour du contexte festival en GSI : http://www.reseaucerta.org/cotecours/cotecours.php?num=363
• Une implémentation « pédagogique »
15 mai 2012 Inter-Académiques 23
GSB et MVCGSB et MVC• MVC est piloté par les cas d’utilisation
15 mai 2012 Inter-Académiques 24
GSB et MVCGSB et MVC
15 mai 2012 Inter-Académiques 25
GSB et MVCGSB et MVCLe contrôleur principalLe contrôleur principal
15 mai 2012 Inter-Académiques 26
GSB et MVCGSB et MVCEtat des fraisEtat des frais
15 mai 2012 Inter-Académiques 27
GSB et MVCGSB et MVCEtat des fraisEtat des frais
• 1.L’utilisateur demande à consulter ses frais
• 2.Le système l’invite à sélectionner un mois
15 mai 2012 Inter-Académiques 28
• 3. L’utilisateur sélectionne un mois et valide
• 4. Le système retourne les frais pour le mois
15 mai 2012 Inter-Académiques 29
Contrôleur associContrôleur associéé
15 mai 2012 Inter-Académiques 30
Code des vues retournCode des vues retournééeses
15 mai 2012 Inter-Académiques 31
Renseigner la fiche de fraisRenseigner la fiche de frais
15 mai 2012 Inter-Académiques 32
4 actions sont demandées
Contrôleur associContrôleur associéé
15 mai 2012 Inter-Académiques 33
Une vue : Une vue : listeFraisForfaitslisteFraisForfaits
15 mai 2012 Inter-Académiques 34
Gestion des erreurs de saisieGestion des erreurs de saisie
15 mai 2012 Inter-Académiques 35
LL’’organisation des fichiersorganisation des fichiers
15 mai 2012 Inter-Académiques 36
Le modLe modèèlele• Fichier de fonctions
15 mai 2012 Inter-Académiques 37
Le modLe modèèlele• Fichier de la classe d’accès aux données :
15 mai 2012 Inter-Académiques 38
UtilisationUtilisation• Appel dans l’index :
• Les méthodes de la classe PdoGsb :
15 mai 2012 Inter-Académiques 39
Quelles Quelles éévolutions?volutions?• Des templates de présentation : Smarty
• On charge la bibliothèque Smarty
• Les contrôleurs instancie un objet par vue
• La vue est un fichier tpl
15 mai 2012 Inter-Académiques 40