Bonjour,
J'utilise cette architecture depuis peu,
Voila je fais ce posts pour avoir quelques informations (complète si possible) sur l'architecture Mvc (Model View Controler).
Pourquoi utiliser Mvc ?
Que doit-on mettre dans la vue ?
Que doit-on mettre dans le controler ?
Que doit-on mettre dans le Model ?
Comment s'en servir ?
Si possible me mettre des exemples de code, je vous en remercie chaleuresement.
Guillaume
Salut,
c'est un peu gros comme question, impossible de répondre "vite fait".
On peut donner les grandes lignes.
Que doit-on mettre dans la vue ?
Que doit-on mettre dans le controler ?
Que doit-on mettre dans le Model ?
C'est dans les vue, que tu écris le code HTML.
(il n'y a jamais de code HTML, ni dans un controller, ni dans un model)
Un model c'est une classe que tu écris, qui regroupe toutes les requêtes que tu va faire en base de données, EN RAPPORT à ce model.
C'est à dire que pour gérer un "utilisateur", tu vas écrire une classe "userModel".
Dans cette classe, tu vas écrire toutes les fonctions qui "gèrent" un utilisateur en base de données :
Un model n'a QUE des fonctions qui servent à interagir avec la base de données.
Si tu as un blog sur ton site,
tu vas devoir gérer des "articles",
alors comme "userModel", regroupe toutes les fonctions qui "gèrent" un "utilisateur" en base de données,
tu vas écrire aussi une autre classe, "postModel", qui regroupera toutes les fonctions qui "gèrent" un "article" en base de données.
Et ainsi de suite, si tu as d'autres "model" à gérer. (ex : un model "facture", ou "commande" pour les sites de vente en lignes...)
Un controller, est lui aussi, une classe que tu écris.
C'est le controller qui reçoit les "informations" (les variables $_GET, ou $_POST), et qui les "traite".
Il fait les opérations que tu lui a demandé de faire comme par exemple :
à la fin de CHAQUE fonction d'un controller, il y a SOIT :
Mais à la fin, on doit toujours finir par une fonction qui appelle une vue (et oui il faut bien afficher quelque chose un moment quand même).
Donc un controller :
Voilà c'est pas ultra clair comme réponse,
mais de toutes façons c'est impossible à expliquer comme ça sur un forum.
Pour l'instant j'imagine que ça ne veut pas dire grand chose pour toi, c'est trop abstrait comme réponse, c'est normal, il faut suivre un tutoriel pour bien comprendre.
Je te conseille la formation qu'a fait Grafikart sur la programmation orientée objet.
C'est très bien expliqué, et c'est du concret, tu aura le code, à force d'avancer tu vas comprendre.
https://www.grafikart.fr/formations/programmation-objet-php
Pourquoi utiliser Mvc ?
L'idée c'est d'avoir un code "organisé", "séparé".
Le code est plus facilement "débugable", "maintenable", "évolutif"...
Un avantage énorme aussi c'est que, si tu travail avec une autre personne,
disons toi tu code la "structure", et l'autre personne s'occupe du design,
alors ça va vous faciliter la vie.
Le designer ne touchera qu'aux vue, et au CSS,
et toi : aux vue également, mais aussi à tout le reste (mais pas au CSS).
Toi tu écrira la "structure" de la vue, le fond, et le designer modifiera ensuite cette vue pour rajouter des classes aux balises HTML, et même réaranger la "structure" s'il en a besoin pour son design.
Comment s'en servir ?
C'est là que "l'explication" s'arrête.
Il faut regarder la formation que j'ai mentionné plus haut.
Merci beaucoup d'avoir pris le temps de m'expliquer tout ceci,
Il y aurait moyen que tu me fasse un exemple avec un code de connexion par exemple ?
http://hpics.li/cbbe7f4
Sur cette image est inscrit mon architecture, par exemple la je travail une page profil.php, son modele va etre profil.php et le controler faut qu'il s'appel profil.php ?
Ou alors je créer un fichier avec le nom de la classe ?
J'te remercie :)
Désolé j'ai "posté" alors que je n'avais pas vraiment fini,
j'ai édité mon 1er message
Il y aurait moyen que tu me fasse un exemple avec un code de connexion par exemple ?
Désolé j'ai vraiment la flemme, c'est long à bien faire.
Mais en plus ça servirai à rien, Grafikart l'a fait en vidéo, et bien mieux que je ne le ferai.
Du coup je répète ce que j'ai rajouté en éditant,
essaie de regarder ça :
https://www.grafikart.fr/formations/programmation-objet-php
Reviens poser des questions si tu en as après voir vu cette formation.
On y répondra avec plaisir.