Le contexte GSB et le mod le MVC - economie-gestion.ac...

Preview:

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 &lt;, > en &gt; , 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

Recommended