Bonjour à tous
Je tente de m'initier à ce concept MVC (donc Model Vue Controller), mais je patauge un peu dans la choucroute particulièrement entre le Controller et le model.
Pour faire court, je tente de donner un exemple simple et assez proche de la réalité : Une identification par exemple.
D'abord, il y a un routage qui ce fait dans le index.php, donc tout demande de page, comme identification.html passera en 1er dans ce index.php, le point d'entrée.
Ensuite, dans le index.php on inclus le controller :
Puis le controller (identification.php) se charge donc à inclure le model et la vue, mais d'exécuter les actions aussi (d'après ce que j'ai compris).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 /** * index.php */ // Une succession d'initialisation, d'instanciation $route = $conf::getRouteur(); // Instancie le routeur $route->routage(); require('controllers/'.Routeur::$page['name']);// Correspondra à identification.php ici
En résumé, ça se traduit comme ceci :
Le model se charge de récupérer les données
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 /** * CONTROLLER identification.php */ $session = Session::getInstance(); $session->start(); $href = $Conf::getLink(); $user = User::getInstance(); // Inclure le model require('models/'.Routeur::$page['name']); // Correspondra à identification.php ici // Récurér les données / Les stocker / faire les actions if (isset($_POST['action']) && ($_POST['action'] === 'identifier')) { // Phase d'identification } // Inclure la vue require('vues/template.php'); // Le template inclus les vues, les blocs, entre autre identification.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 /** * MODEL identification.php */ require(Template::loadLangue()); require(Template::loadPageLangue()); $template->addLinkCss('formulaire.css'); $template->addLinkJS('verif_formulaire.js'); $template->addLinkJS('identification.js');
Le problème c'est que je ne sais pas trop quand include le model : avant de faire les actions dans le controller ou après ?
D'un coté, il faudrait ici que ça soit fait avant à cause du contenu linguistique, car s'il y a une erreur, il est nécessaire d'avoir le message avant une redirection.
De l'autre, en cas d'erreur toujours, j'aurais chargé $template pour rien.
Ce n'est qu'un exemple, il y en a d'autres des comme ça.
Bref ... je tourne en rond.
Disons que j'ai tendance à vouloir tout mettre dans le controller, et le model ferait office de vue plus qu'autre chose.
Bon, je suis en phase intermédiaire, je prospecte le MVC avec ce que j'ai actuellement, mais j'ai l'impression que c'est le souk.
Je ne parviens pas à faire le distingo entre le controller et le model, ce qu'ils doivent contenir ou faire.
Vous en pensez quoi de cette organisation, structure ?
Faut il tout revoir ?
Merci![]()









Répondre avec citation
Partager