intromvc cm1 codeigniter -...

36
M3202 structuré son developpement avec MVC

Upload: trinhthien

Post on 27-Jul-2018

236 views

Category:

Documents


0 download

TRANSCRIPT

M3202structuré 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

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…

CODE IGNITER

• http://codeigniter.fr/

• Le framework léger qui monte...

• Et qui retombe... :-(

• Et qui remonte…. :-)

DÉVELOPPER EN MVC FROM SCRATCH

Classique MVC

DÉVELOPPER EN MVC FROM SCRATCH

Classique: catalogue.php

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

DÉVELOPPER EN MVC AVEC CODEIGNITER

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

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)

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

DEV MVC AVEC CODEIGNITERorganisation physique

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() …)

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

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

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

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

DEV MVC AVEC CODEIGNITERRésumé:

DEV MVC AVEC CODEIGNITERproblématique:

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

1) le model

DEV MVC AVEC CODEIGNITER

2) le controleur :

DEV MVC AVEC CODEIGNITER

3) visualiser le résultat

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

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

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 » )

DEV MVC AVEC CODEIGNITERproblématique:

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

1) le model

DEV MVC AVEC CODEIGNITER

… 2) le controleur :

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

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

MVC

1) que veut dire MVC ?

Auto évaluation en 7 questions

Model / Vue / Controleur

MVC

2) dans quel fichier trouve t on du sql?

model, vue ou contrôleur?

Auto évaluation en 7 questions

Model

MVC

3) citez 2 framework back

Auto évaluation en 7 questions

SymfonyCakePhp

CodeIgniterRuby on Rails

MVC

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

Auto évaluation en 7 questions

………..

………..

………..

model

vue

Controler

MVC

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

Auto évaluation en 7 questions

new $bdd query

$result

$tousLesArticles

MVC

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

Auto évaluation en 7 questions

get_articles_maj ()

MVC

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

Auto évaluation en 7 questions

$articles $un { ?>

}

: ?>

endforeach