Top Banner
M3202 structuré son developpement avec MVC
36

introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

Jul 27, 2018

Download

Documents

trinhthien
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

M3202structuré son developpement

avec MVC

Page 2: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

RAPPEL

• FRAMEWORK et MVC ou ça?

Page 3: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

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.

Page 4: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

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

Page 5: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

CAKEPHP

• www.cakephp.org

• Basé sur le principe de Ruby on Rails

• Développé en php

• Langage de développement: php

• Basé sur MVC

Page 6: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

FRAMEWORK SYMFONY 3

• Utilisation de SYMFONY 3

• les plus:• MVC• puissant

• les moins:• nécessite une bonne culture du

développement (POO)• à voir en S4…

Page 7: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

CODE IGNITER

• http://codeigniter.fr/

• Le framework léger qui monte...

• Et qui retombe... :-(

• Et qui remonte…. :-)

Page 8: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

DÉVELOPPER EN MVC FROM SCRATCH

Classique MVC

Page 9: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

DÉVELOPPER EN MVC FROM SCRATCH

Classique: catalogue.php

Page 10: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

DÉVELOPPER EN MVC FROM SCRATCHMVC: m_articles.php / v_articles.php / c_articles.php

Page 11: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

DÉVELOPPER EN MVC AVEC CODEIGNITER

exemple d’illustration: sur le cas « DUTAF » de MMI1,nous souhaitons afficher la liste des articles

Page 12: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

DEV MVC AVEC CODEIGNITER

installation:

• télécharger l’ensemble du projet

• dézipper le projet

• copier tous le dossier sur votre serveur (soit votre serveur de développement local, soit votre serveur de production comme la 55)

Page 13: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

DEV MVC AVEC CODEIGNITERconfiguration:

1) editer le fichier database.php (dans le dossier config) et remplir les champs nécessaires.

2) créer le fichier htaccess (à la racine du répertoire du projet) permettant une utilisation plus simple des URL (permet d’éviter les référence dans l’url à index.php)

http://www.codeigniter.com/user_guide/general/urls.html?highlight=htaccess

Page 14: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

DEV MVC AVEC CODEIGNITERorganisation physique

Page 15: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

DEV MVC AVEC CODEIGNITERle fichier Modele:

•« articles_model.php » dans le dossier « models »

•il décrit l’accès aux données nécessaires à l’affichage de la page

•il peut comporter plusieurs méthodes•ici une seule méthode qui renvois tous les

articles dans un objet•on peut aussi faire des traitements dans les

méthodes (ex get_articles_maj() …)

Page 16: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

DEV MVC AVEC CODEIGNITER

le fichier Controleur:

• « articles.php » dans le dossier « contrôler »• il est l’élément principal, celui que l’on appelle

pour afficher la page, • c’est lui qui fera appelle au modele pour

récupérer les données, (renvoyé dans un objet stocké ici dans la variable $recup)

• dans certain cas les données pourront être traité ici (mais nous privilégierons le traitement directement dans le modele) puis il renverra les infos traitées ($data[‘tous’]) vers la vue qui les affichera en les mettant en forme

Page 17: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

DEV MVC AVEC CODEIGNITER

le fichier Vue:

• « articles_view.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• Il y a ici du php minimum, mais il est

possible aussi d’utiliser un moteur de template (ex: smarty) comme pour symfony ce qui permet d’avoir une vue exempte de php.

ici seul des petits blocs de php sont nécessaires:•un « foreach » pour traiter tous les articles•et des echo pour chaque champ à afficher

Page 18: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

DEV MVC AVEC CODEIGNITER

Appel d’une page développer en MVC avec codeigniter:

• cela consiste toujours dans l’appel du contrôleur,

• il se chargera d’appeler le modele pour récupérer les données et renverra les données traitées vers la vue pour les afficher

Page 19: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

DEV MVC AVEC CODEIGNITER

Mettre en place un routage élémentaire: les URL en MVC ne sont du coup pas toujours « propre » ( http://127.0.0.1/codeigniter/controleurarticles …)il est possible de ré-écrire les URL:ex:http://127.0.0.1/codeigniter/catalogue pour http://127.0.0.1/codeigniter/controleurarticles…

à faire dans le fichier route.php situé dans le dossier config

Page 20: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

DEV MVC AVEC CODEIGNITERRésumé:

Page 21: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

DEV MVC AVEC CODEIGNITERproblématique:

afficher les articles de moins de 5 euro…?que doit on modifier dans notre structure MVC?

1) le model

Page 22: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

DEV MVC AVEC CODEIGNITER

2) le controleur :

Page 23: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

DEV MVC AVEC CODEIGNITER

3) visualiser le résultat

faire appel à la méthode « paschere » du contrôleur « articles »

Page 24: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

DEV MVC AVEC CODEIGNITER3) simplifier le routage plutôt que d’appeler « http://127.0.0.1/codeigniter/articles/paschere »

on veut avoir dans l’url: http://127.0.0.1/codeigniter/radin

dans le fichier route.php

la route raccourcie

la methode à appeler

le controleur

Page 25: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

DEV MVC AVEC CODEIGNITERproblématique maintenant nous voudrions pouvoir passer un paramètre dans l’url (plutot que d’avoir la valeur du budget max en « dur » )

Page 26: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

DEV MVC AVEC CODEIGNITERproblématique:

afficher les articles de moins de XX euro…?que doit on modifier dans notre structure MVC?

1) le model

Page 27: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

DEV MVC AVEC CODEIGNITER

… 2) le controleur :

Page 28: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

DEV MVC AVEC CODEIGNITER

3) visualiser le résultat

faire appel à la méthode « budgetmax » du contrôleur « articles » en lui passant une valeur (ici 2) en argument

Page 29: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

DEV MVC AVEC CODEIGNITER3) simplifier le routage plutôt que d’appeler « http://127.0.0.1/codeigniter/articles/budgetmax/2 »

on veut avoir dans l’url: http://127.0.0.1/codeigniter/maxi/2

dans le fichier route.php

indique que ce premier paramètre sera un numérique

indique qu’il y aura un premier paramètre

Page 30: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

MVC

1) que veut dire MVC ?

Auto évaluation en 7 questions

Model / Vue / Controleur

Page 31: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

MVC

2) dans quel fichier trouve t on du sql?

model, vue ou contrôleur?

Auto évaluation en 7 questions

Model

Page 32: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

MVC

3) citez 2 framework back

Auto évaluation en 7 questions

SymfonyCakePhp

CodeIgniterRuby on Rails

Page 33: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

MVC

4) Complétez les 3 champs en pointillés:

Auto évaluation en 7 questions

………..

………..

………..

model

vue

Controler

Page 34: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

MVC

5) compléter les pointillés dans le fichier modèle:

Auto évaluation en 7 questions

new $bdd query

$result

$tousLesArticles

Page 35: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

MVC

6) compléter les pointillés dans le fichier controleur :

Auto évaluation en 7 questions

get_articles_maj ()

Page 36: introMVC cm1 codeigniter - src.iut-troyes.univ-reims.frsrc.iut-troyes.univ-reims.fr/.../introMVC_cm1_codeigniter.pdf · développement (POO) ... DÉVELOPPER EN MVC FROM SCRATCH MVC:

MVC

7) compléter les pointillés dans le fichier vue:

Auto évaluation en 7 questions

$articles $un { ?>

}

: ?>

endforeach