SlideShare une entreprise Scribd logo
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 à Z
Microsoft
 
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 JS
Horacio 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 bibliotheque
Mehdi 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, JS
Horacio 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 PHP
Kristen 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 SQL
Bruno 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 OMEZZINE
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)
Café Numérique Arlon
 
Do you speak technique ?
Do you speak technique ?Do you speak technique ?
Do you speak technique ?
JEAN-GUILLAUME DUJARDIN
 
La plateforme JEE
La plateforme JEELa plateforme JEE
La plateforme JEE
Sabri Bouchlema
 
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 door
LeTesteur
 
Linq et Entity framework
Linq et Entity frameworkLinq et Entity framework
Linq et Entity framework
DNG Consulting
 
Séquence1.pptx
Séquence1.pptxSéquence1.pptx
Séquence1.pptx
RazanBenBouChaib
 
Cours architecture
Cours architectureCours architecture
Cours architecture
Abdelaziz Elbaze
 
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

Edito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdfEdito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdf
WarlockeTamagafk
 
Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024
Friends of African Village Libraries
 
Cycle de Formation Théâtrale 2024 / 2025
Cycle de Formation Théâtrale 2024 / 2025Cycle de Formation Théâtrale 2024 / 2025
Cycle de Formation Théâtrale 2024 / 2025
Billy DEYLORD
 
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
BenotGeorges3
 
Iris van Herpen. pptx
Iris         van        Herpen.      pptxIris         van        Herpen.      pptx
Iris van Herpen. pptx
Txaruka
 
Procédure consignation Lock Out Tag Out.pptx
Procédure consignation  Lock Out Tag Out.pptxProcédure consignation  Lock Out Tag Out.pptx
Procédure consignation Lock Out Tag Out.pptx
caggoune66
 
Iris van Herpen. pptx
Iris            van        Herpen.     pptxIris            van        Herpen.     pptx
Iris van Herpen. pptx
Txaruka
 
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
M2i Formation
 
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La JeunesseConseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Oscar Smith
 
Iris van Herpen. pptx
Iris         van         Herpen.      pptxIris         van         Herpen.      pptx
Iris van Herpen. pptx
Txaruka
 
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
cristionobedi
 

Dernier (11)

Edito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdfEdito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdf
 
Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024
 
Cycle de Formation Théâtrale 2024 / 2025
Cycle de Formation Théâtrale 2024 / 2025Cycle de Formation Théâtrale 2024 / 2025
Cycle de Formation Théâtrale 2024 / 2025
 
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
 
Iris van Herpen. pptx
Iris         van        Herpen.      pptxIris         van        Herpen.      pptx
Iris van Herpen. pptx
 
Procédure consignation Lock Out Tag Out.pptx
Procédure consignation  Lock Out Tag Out.pptxProcédure consignation  Lock Out Tag Out.pptx
Procédure consignation Lock Out Tag Out.pptx
 
Iris van Herpen. pptx
Iris            van        Herpen.     pptxIris            van        Herpen.     pptx
Iris van Herpen. pptx
 
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
 
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La JeunesseConseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
 
Iris van Herpen. pptx
Iris         van         Herpen.      pptxIris         van         Herpen.      pptx
Iris van Herpen. pptx
 
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
 

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()); }