structuré son developpement avec MVC

M3202
structuré son developpement avec MVC
RAPPEL
•
FRAMEWORK et MVC ou ça?
LES FRAMEWORKS
•
Un framework est un espace de travail modulaire.
•
C'est un ensemble de bibliothèques et de
conventions permettant le développement rapide
d'applications. •
Il fournit suffisamment de briques logicielles et
impose suffisamment de rigueur pour pouvoir
produire une application aboutie et facile à
maintenir.
RUBY ON RAILS
•
www.rubyonrails.org
Les plus
• Puissant
• Orienté MVC
• Modele / Vue / Controleur
• Les moins
• Nécessite un serveur configuré spécifiquement
• Langage spécifique à Ruby on Rails
•
CAKEPHP
•
www.cakephp.org
•
Basé sur le principe de Ruby on Rails
•
Développé en php
•
Langage de développement: php
•
Basé sur MVC
CODE IGNITEUR
•
http://codeigniter.fr/
•
Le framework léger qui monte...
•
Et qui retombe... :-(
« MINI » FRAMEWORK MODX
•
Utilisation d'un « mini »framework
•
Modx : cms ou framework,
(« cmwork » :-) … )
•
http://wiki.modxcms.com/index.php/
Fr:Page_Principal
FRAMEWORK SYMFONY 2
•
Utilisation de SYMFONY 2
•
les plus:
• MVC
• puissant
les moins:
• nécessite une bonne culture du
développement (POO)
• En S4…
•
DÉVELOPPER EN MVC FROM SCRATCH
Classique
MVC
DÉVELOPPER EN MVC FROM SCRATCH
Classique:
catalogue.php
DÉVELOPPER EN MVC FROM SCRATCH
MVC: m_articles.php / v_articles.php / c_articles.php
DÉVELOPPER EN MVC FROM SCRATCH
exemple d’illustration:
sur le cas « DUTAF de MMI1,
nous souhaitons afficher la liste des articles avec la
designation toujours en majuscule
DÉVELOPPER EN MVC FROM SCRATCH
organisation physique
pour l’instant pas de fichier index.php,
ce fichier servira par la suite de « routage »
DÉVELOPPER EN MVC FROM SCRATCH
le fichier Modele:
• remarques:
• « m_articles.php » dans le dossier « model »
•ici on utilise PDO à la place de
mysqli
de la
•il décrit l’accès aux données nécessaires à l’affichage
•et une nouvelle methode
page
fetchAll() qui recupere tous le
•il peut comporter plusieurs méthodes
resultat
•ici une seule méthode qui renvois tous les articles
danspour
un le mettre dans un
tableau
tableau
!
DÉVELOPPER
EN
MVC
FROM
SCRATCH
• remarques:
• on utilisera ici la boucle « foreach » pour
le fichier Controleur: traiter tous les articles récupérés et passer
chaque designation en majuscule. Cette
!
• « c_articles.php » dans le dossierfonction « foreach » est très pratique pour
parcourir tous les éléments d’un tableau
« contrôler »
• il est l’élément principal, celui que• l’on
on utilisera aussi la fonction strtoupper()
appelle pour afficher la page, pour transformer une chaine en majuscule
• c’est lui qui fera appelle au modele pour
récupérer les données, (renvoyé dans un
tableau stocké ici dans la variable
$articles)
• puis il les traiteras (ici dans l’exercice, il
devra mettre toutes les descriptions en
majuscule) puis il renverra les infos
traitées vers la vue qui les affichera en les
mettant en forme
DÉVELOPPER EN MVC FROM SCRATCH
ici seul des petits blocs de php sont nécessaires:
•un « foreach » pour traiter tous les articles
•et des echo pour chaque champ à afficher
le fichier Vue:
!
• « v_articles.php » dans le dossier
« view »
• il va récupérer les données traitées par le
contrôleur et les afficher à travers une
mise en forme html/css, • il est appelé par le contrôleur
DÉVELOPPER EN MVC FROM SCRATCH
Appel d’une page développer
en MVC:
!
• cela consiste en l’appel du contrôleur,
• il se chargera d’appeler le modele pour
récupérer les données, puis fera subir le
traitement éventuel (ici mise en
majuscule) et renverra les données
traitées vers la vue pour les afficher
DÉVELOPPER EN MVC FROM SCRATCH
Mettre en place un routage élémentaire
!
• le routage permet de gérer l’appel des différentes page en
appelant les controleurs adéquates
• ce n’est pas une nécessité, mais cela centralise la gestion du
site.
• les frameworks comme symfony utilisent des outils de
routage puissant.
• ici il est nécessaire de modifier légèrement les chemins
d’accès dans les contrôleur…
DÉVELOPPER EN MVC FROM SCRATCH
DÉVELOPPER EN MVC FROM SCRATCH
Nous venons de voir une méthode de développement MVC la plus rudimentaire,
(un micro Framework « fait maison »)
!
• Les frameworks (comme symfony) propose une API bien plus complete et bien plus efficace mais qui
nécessite aussi un apprentissage bien plus long et de bonnes bases en développement et surtout
Symfony ajoute en plus du MVC beaucoup d’autres concepts:
• outils de gestion de template (Twig) • outils de package de pluging (Bundle)
• outils e gestion de base de données (ORM Doctrine) • outils de gestion de dépendance (composer)
• outils de creation en ligne de commande (php symfony) •…