intromvc cm1 codeigniter -...
TRANSCRIPT
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 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 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 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
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
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
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 ()