SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
Création de site web
Sites web MVC
Damien Nouvel
Licence Math/Info - L1
Damien Nouvel
Création de site web
2 / 17
Sites web MVC
Plan
● Architecture MVC
● Modèle / base de données
● Vues / interface
● Contrôleur / application
Licence Math/Info - L1
Damien Nouvel
Création de site web
3 / 17
Sites web MVC
Plan
● Architecture MVC
● Modèle / base de données
● Vues / interface
● Contrôleur / application
Licence Math/Info - L1
Damien Nouvel
Création de site web
4 / 17
Sites web MVC
Architecture MVC
● MVC
● Méthode de conception d'Interface Homme Machine (IHM)
(Reenskaug, 1979)
● Modèle – Vue - Contrôleur
– Modèle : gestion des données et des fonction pour y accéder
● Couche de persistance des données
– Vue : affichage des données
● Interfaces avec l'utilisateur
– Contrôleur : synchronisation entre la vue et les données
● Application, traitements, flux de données
● Vue indépendante des données (≠ trois-tiers, couches)
● Java (Swing, SWT, Spring, Struts), PHP (Symfony, Cake, Zend),
Python (Django, Turbogears), Flash (Flex), Ruby (Rails)
Licence Math/Info - L1
Damien Nouvel
Création de site web
5 / 17
Sites web MVC
Architecture MVC
● Schéma de fonctionnement
Vue
Contrôleur
Modèle
Licence Math/Info - L1
Damien Nouvel
Création de site web
6 / 17
Sites web MVC
Plan
● Architecture MVC
● Modèle / base de données
● Vues / interface
● Contrôleur / application
Licence Math/Info - L1
Damien Nouvel
Création de site web
7 / 17
Sites web MVC
Modèle / base de données
● Modèle (de données)
● Description des « objets » manipulés par le système
– Personnes, évènements, produits, instruments, etc.
● Couche de persistance
– Base de données
– Fichiers (XML, CSV...)
● Moteur de persistance
– Fonctions de manipulation des objets
● Liste, lecture, écriture
– Fonctions « standard » qui peuvent potentiellement être
appliquées à tous les objets
– Interface entre le langage (Java, PhP
, .Net...) et les données
– Optimisation en lecture, droits d'accès en écriture, etc.
Licence Math/Info - L1
Damien Nouvel
Création de site web
8 / 17
Sites web MVC
Modèle / base de données
● Bases de données
● Gestion des données standardisée
● Structuration des données sous formes d' « objets »
– Chaque objet est défini par un ensemble d' « attributs »
– Les objets peuvent correspondre aux classes du langage
– Des associations peuvent être faites entre les objets
Clients Produits
Magasins
Fournisseurs
Licence Math/Info - L1
Damien Nouvel
Création de site web
9 / 17
Sites web MVC
Modèle / base de données
● Bases de données (suite)
● Base de données « relationnelle »
– Objets décrits par des « tables » (tableau Excel)
– Chaque attribut est une colonne
● Typée : entier, chaîne, booléen, etc.
– Objets identifiés par des « clés »
● Indexation pour accès rapide aux données, associations entre données
ID Nom Prénom Email Magasin Newsletter ...
1 Nouvel Damien nouvel@... 3 o
2 Dupond Roger r.dup@... 2 n
3 Smith Bob ... 5 n
4 Colas Régis ... 3 o
...
Licence Math/Info - L1
Damien Nouvel
Création de site web
10 / 17
Sites web MVC
Modèle / base de données
● Bases de données (suite)
● Langage de «requête » sur la base de données
– SQL : Structured Query Language (Chamberlain & Boyce, 1970)
● Exemple classique en PhP / MysQL
// Connexion à la base de données
mysql_connect('localhost', 'login', 'password');
mysql_select_db('nom_de_la_base',$db);
// Requête SQL
$res = mysql_query('SELECT prenom, nom FROM client');
// Traitement des résultats
while($client = mysql_fetch_assoc($res)){
echo 'Client'.$client['prenom'].' '.$client['nom'] ;
...
}
Licence Math/Info - L1
Damien Nouvel
Création de site web
11 / 17
Sites web MVC
Plan
● Architecture MVC
● Modèle / base de données
● Vues / interface
● Contrôleur / application
Licence Math/Info - L1
Damien Nouvel
Création de site web
12 / 17
Sites web MVC
Vues / interface
● Utilisation de « templates »
● Présentation des données
● Utilisation des inclusions pour assembler la page
● Définit les possibilités d'interaction avec l'utilisateur
– Liens, formulaires, pagination, etc.
● Peut-être dépendante des objets à afficher
– Liste des clients, fournisseurs, magasins
– Détail d'un client, fournisseur, magasin
– Formulaire pour modifier un client, fournisseur, magasin
● Peut faire appel à des éléments génériques
– Liste d'objets (avec pagination)
– Élément de formulaire
Licence Math/Info - L1
Damien Nouvel
Création de site web
13 / 17
Sites web MVC
Vues / interface
● Utilisation de « templates » (suite)
● Programmation de l'interface
● Exemple classique en PhP
<ul>
<?php foreach($objets as $objet){ ?>
<li>'
<img class="image" src="<?php echo $objet['image']; ?>" />
<p class="titre"><?php echo $objet['nom']; ?></p>
<p class="resume"><?php echo $objet['description'];?></p>
<a class="detail" href="<?php echo $objet['lien']; ?>">Détails</a>
</li>
<?php } ?>
</ul>
Licence Math/Info - L1
Damien Nouvel
Création de site web
14 / 17
Sites web MVC
Plan
● Architecture MVC
● Modèle / base de données
● Vues / interface
● Contrôleur / application
Licence Math/Info - L1
Damien Nouvel
Création de site web
15 / 17
Sites web MVC
Contrôleur / application
● Le contrôleur tient compte des évènements
● Selon les interactions possibles avec l'interface
● Lien entre la vue et les données
● Par ex. :
– L'utilisateur demande une page :
● Sélectionner les données dans la base pour alimenter le modèle
● Passer les éléments du modèle aux vues correspondant à la page
– L'utilisateur demande une liste de produits :
● Sélectionner les produits dans la base de données
● Trier les produits (ordre par défaut ou demandé par l'utilisateur)
● Passer les objets à la vue « liste »
– L'utilisateur valide un formulaire pour un produit
● Demander au modèle de mettre à jour / insérer le produit
● Aller vers la vue succès / erreur
Licence Math/Info - L1
Damien Nouvel
Création de site web
16 / 17
Sites web MVC
Contrôleur / application
● Le contrôleur définit l'application
● Flux des données
● Changements de vues / de pages
● De manière classique, principales pages :
– Dédiées (page d'accueil, contact, etc.)
– Le « contenu » (section du site, article)
– Les listes d'objets :
● Mécanisme de liste paginée
● Affichage d'élément de liste selon l'objet
● Liens selon les droits (lecture, écriture, suppression)
– Le détail d'un objet (spécifique)
– La modification d'un objet
● Même vue pour l'insertion ou la modification
Licence Math/Info - L1
Damien Nouvel
Création de site web
17 / 17
Sites web MVC
Contrôleur / application
● Interactions complexes avec modèle / vues
● Par ex. :
if($vue == 'liste-produits'){
$produits = modele->getProduits($criteres);
vue_centrale->afficherListe($produits);
boites_droite->listeCourte($produits->produitsLies());
if($utilisateur->isClient()){
boites_droite->ajouterPromos();
}
if($vue == 'detail-produit'){
$produit = modele->getProduit($id);
vue_centrale->afficherElement($produit);
boites_droite->listeCourte($produit->accessoires());
}

Contenu connexe

Similaire à 7_SitesWebMVC.pdf

MVVM de A à Z
MVVM de A à ZMVVM de A à Z
MVVM de A à ZMicrosoft
 
La caisse à outils de la visualisation d'informations
La caisse à outils de la visualisation d'informationsLa caisse à outils de la visualisation d'informations
La caisse à outils de la visualisation d'informationsChristopheTricot
 
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JS
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JSENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JS
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JSHoracio Gonzalez
 
Ecole ESMA : Rapport de projet - Application de gestion d'une bibliotheque
Ecole ESMA : Rapport de projet - Application de gestion d'une bibliothequeEcole ESMA : Rapport de projet - Application de gestion d'une bibliotheque
Ecole ESMA : Rapport de projet - Application de gestion d'une bibliothequeMehdi Hamime
 
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JSENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JSHoracio Gonzalez
 
Un exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHPUn exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHPKristen Le Liboux
 
Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"Nazih Heni
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQLBruno Bonnin
 
Enib cours c.a.i. web - séance #1 - html5 css3-js - 1
Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1
Enib cours c.a.i. web - séance #1 - html5 css3-js - 1Horacio Gonzalez
 
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEIntroduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEMarouan OMEZZINE
 
Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)
Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)
Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)Café Numérique Arlon
 
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...CERTyou Formation
 
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...CERTyou Formation
 
Web dev open door
Web dev   open doorWeb dev   open door
Web dev open doorLeTesteur
 
Linq et Entity framework
Linq et Entity frameworkLinq et Entity framework
Linq et Entity frameworkDNG Consulting
 
Portails Etat De L'art
Portails  Etat De L'artPortails  Etat De L'art
Portails Etat De L'artTugdual Grall
 

Similaire à 7_SitesWebMVC.pdf (20)

MVVM de A à Z
MVVM de A à ZMVVM de A à Z
MVVM de A à Z
 
La caisse à outils de la visualisation d'informations
La caisse à outils de la visualisation d'informationsLa caisse à outils de la visualisation d'informations
La caisse à outils de la visualisation d'informations
 
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JS
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JSENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JS
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JS
 
Ecole ESMA : Rapport de projet - Application de gestion d'une bibliotheque
Ecole ESMA : Rapport de projet - Application de gestion d'une bibliothequeEcole ESMA : Rapport de projet - Application de gestion d'une bibliotheque
Ecole ESMA : Rapport de projet - Application de gestion d'une bibliotheque
 
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JSENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
 
Un exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHPUn exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHP
 
Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQL
 
Enib cours c.a.i. web - séance #1 - html5 css3-js - 1
Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1
Enib cours c.a.i. web - séance #1 - html5 css3-js - 1
 
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEIntroduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
 
Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)
Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)
Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)
 
Do you speak technique ?
Do you speak technique ?Do you speak technique ?
Do you speak technique ?
 
La plateforme JEE
La plateforme JEELa plateforme JEE
La plateforme JEE
 
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...
 
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...
 
Web dev open door
Web dev   open doorWeb dev   open door
Web dev open door
 
Linq et Entity framework
Linq et Entity frameworkLinq et Entity framework
Linq et Entity framework
 
Séquence1.pptx
Séquence1.pptxSéquence1.pptx
Séquence1.pptx
 
Cours architecture
Cours architectureCours architecture
Cours architecture
 
Portails Etat De L'art
Portails  Etat De L'artPortails  Etat De L'art
Portails Etat De L'art
 

Dernier

Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...M2i Formation
 
présentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurprésentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurdinaelchaine
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
Grammaire pour les élèves de la 6ème.doc
Grammaire pour les élèves de la  6ème.docGrammaire pour les élèves de la  6ème.doc
Grammaire pour les élèves de la 6ème.docKarimKhrifech
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxlamourfrantz
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptssusercbaa22
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfMICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfssuser40e112
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprisesMajdaKtiri2
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 

Dernier (20)

Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
présentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurprésentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteur
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
Grammaire pour les élèves de la 6ème.doc
Grammaire pour les élèves de la  6ème.docGrammaire pour les élèves de la  6ème.doc
Grammaire pour les élèves de la 6ème.doc
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptx
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfMICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 

7_SitesWebMVC.pdf

  • 1. Création de site web Sites web MVC Damien Nouvel
  • 2. Licence Math/Info - L1 Damien Nouvel Création de site web 2 / 17 Sites web MVC Plan ● Architecture MVC ● Modèle / base de données ● Vues / interface ● Contrôleur / application
  • 3. Licence Math/Info - L1 Damien Nouvel Création de site web 3 / 17 Sites web MVC Plan ● Architecture MVC ● Modèle / base de données ● Vues / interface ● Contrôleur / application
  • 4. Licence Math/Info - L1 Damien Nouvel Création de site web 4 / 17 Sites web MVC Architecture MVC ● MVC ● Méthode de conception d'Interface Homme Machine (IHM) (Reenskaug, 1979) ● Modèle – Vue - Contrôleur – Modèle : gestion des données et des fonction pour y accéder ● Couche de persistance des données – Vue : affichage des données ● Interfaces avec l'utilisateur – Contrôleur : synchronisation entre la vue et les données ● Application, traitements, flux de données ● Vue indépendante des données (≠ trois-tiers, couches) ● Java (Swing, SWT, Spring, Struts), PHP (Symfony, Cake, Zend), Python (Django, Turbogears), Flash (Flex), Ruby (Rails)
  • 5. Licence Math/Info - L1 Damien Nouvel Création de site web 5 / 17 Sites web MVC Architecture MVC ● Schéma de fonctionnement Vue Contrôleur Modèle
  • 6. Licence Math/Info - L1 Damien Nouvel Création de site web 6 / 17 Sites web MVC Plan ● Architecture MVC ● Modèle / base de données ● Vues / interface ● Contrôleur / application
  • 7. Licence Math/Info - L1 Damien Nouvel Création de site web 7 / 17 Sites web MVC Modèle / base de données ● Modèle (de données) ● Description des « objets » manipulés par le système – Personnes, évènements, produits, instruments, etc. ● Couche de persistance – Base de données – Fichiers (XML, CSV...) ● Moteur de persistance – Fonctions de manipulation des objets ● Liste, lecture, écriture – Fonctions « standard » qui peuvent potentiellement être appliquées à tous les objets – Interface entre le langage (Java, PhP , .Net...) et les données – Optimisation en lecture, droits d'accès en écriture, etc.
  • 8. Licence Math/Info - L1 Damien Nouvel Création de site web 8 / 17 Sites web MVC Modèle / base de données ● Bases de données ● Gestion des données standardisée ● Structuration des données sous formes d' « objets » – Chaque objet est défini par un ensemble d' « attributs » – Les objets peuvent correspondre aux classes du langage – Des associations peuvent être faites entre les objets Clients Produits Magasins Fournisseurs
  • 9. Licence Math/Info - L1 Damien Nouvel Création de site web 9 / 17 Sites web MVC Modèle / base de données ● Bases de données (suite) ● Base de données « relationnelle » – Objets décrits par des « tables » (tableau Excel) – Chaque attribut est une colonne ● Typée : entier, chaîne, booléen, etc. – Objets identifiés par des « clés » ● Indexation pour accès rapide aux données, associations entre données ID Nom Prénom Email Magasin Newsletter ... 1 Nouvel Damien nouvel@... 3 o 2 Dupond Roger r.dup@... 2 n 3 Smith Bob ... 5 n 4 Colas Régis ... 3 o ...
  • 10. Licence Math/Info - L1 Damien Nouvel Création de site web 10 / 17 Sites web MVC Modèle / base de données ● Bases de données (suite) ● Langage de «requête » sur la base de données – SQL : Structured Query Language (Chamberlain & Boyce, 1970) ● Exemple classique en PhP / MysQL // Connexion à la base de données mysql_connect('localhost', 'login', 'password'); mysql_select_db('nom_de_la_base',$db); // Requête SQL $res = mysql_query('SELECT prenom, nom FROM client'); // Traitement des résultats while($client = mysql_fetch_assoc($res)){ echo 'Client'.$client['prenom'].' '.$client['nom'] ; ... }
  • 11. Licence Math/Info - L1 Damien Nouvel Création de site web 11 / 17 Sites web MVC Plan ● Architecture MVC ● Modèle / base de données ● Vues / interface ● Contrôleur / application
  • 12. Licence Math/Info - L1 Damien Nouvel Création de site web 12 / 17 Sites web MVC Vues / interface ● Utilisation de « templates » ● Présentation des données ● Utilisation des inclusions pour assembler la page ● Définit les possibilités d'interaction avec l'utilisateur – Liens, formulaires, pagination, etc. ● Peut-être dépendante des objets à afficher – Liste des clients, fournisseurs, magasins – Détail d'un client, fournisseur, magasin – Formulaire pour modifier un client, fournisseur, magasin ● Peut faire appel à des éléments génériques – Liste d'objets (avec pagination) – Élément de formulaire
  • 13. Licence Math/Info - L1 Damien Nouvel Création de site web 13 / 17 Sites web MVC Vues / interface ● Utilisation de « templates » (suite) ● Programmation de l'interface ● Exemple classique en PhP <ul> <?php foreach($objets as $objet){ ?> <li>' <img class="image" src="<?php echo $objet['image']; ?>" /> <p class="titre"><?php echo $objet['nom']; ?></p> <p class="resume"><?php echo $objet['description'];?></p> <a class="detail" href="<?php echo $objet['lien']; ?>">Détails</a> </li> <?php } ?> </ul>
  • 14. Licence Math/Info - L1 Damien Nouvel Création de site web 14 / 17 Sites web MVC Plan ● Architecture MVC ● Modèle / base de données ● Vues / interface ● Contrôleur / application
  • 15. Licence Math/Info - L1 Damien Nouvel Création de site web 15 / 17 Sites web MVC Contrôleur / application ● Le contrôleur tient compte des évènements ● Selon les interactions possibles avec l'interface ● Lien entre la vue et les données ● Par ex. : – L'utilisateur demande une page : ● Sélectionner les données dans la base pour alimenter le modèle ● Passer les éléments du modèle aux vues correspondant à la page – L'utilisateur demande une liste de produits : ● Sélectionner les produits dans la base de données ● Trier les produits (ordre par défaut ou demandé par l'utilisateur) ● Passer les objets à la vue « liste » – L'utilisateur valide un formulaire pour un produit ● Demander au modèle de mettre à jour / insérer le produit ● Aller vers la vue succès / erreur
  • 16. Licence Math/Info - L1 Damien Nouvel Création de site web 16 / 17 Sites web MVC Contrôleur / application ● Le contrôleur définit l'application ● Flux des données ● Changements de vues / de pages ● De manière classique, principales pages : – Dédiées (page d'accueil, contact, etc.) – Le « contenu » (section du site, article) – Les listes d'objets : ● Mécanisme de liste paginée ● Affichage d'élément de liste selon l'objet ● Liens selon les droits (lecture, écriture, suppression) – Le détail d'un objet (spécifique) – La modification d'un objet ● Même vue pour l'insertion ou la modification
  • 17. Licence Math/Info - L1 Damien Nouvel Création de site web 17 / 17 Sites web MVC Contrôleur / application ● Interactions complexes avec modèle / vues ● Par ex. : if($vue == 'liste-produits'){ $produits = modele->getProduits($criteres); vue_centrale->afficherListe($produits); boites_droite->listeCourte($produits->produitsLies()); if($utilisateur->isClient()){ boites_droite->ajouterPromos(); } if($vue == 'detail-produit'){ $produit = modele->getProduit($id); vue_centrale->afficherElement($produit); boites_droite->listeCourte($produit->accessoires()); }