Bonjour à tous,
Je souhaite mettre en pratique un petit exemple de modèle MVC très souple mais je bloque sur l'endroit ou effectuer les traitement de boucle lors de l'affichage.
L'exemple peux être trouvé ici :
http://fr.wikibooks.org/wiki/Program...P/Exemples/MVC
J'apprécie particulièrement cet exemple car il est vraiment très modulable.
Les différents composant sont appelé dans chaque page php (pas de controller unique donc) de cette manière dans mon application :
acceuil.php
Ici, les pages sont donc appelée chacune directement et non pas en passant par un controler "index.php" comme on peux le voir parfois (avec "index.php?page=maPage" par exemple). Chaque fois qu'une page est appelée, elle va elle même inclure les composants qu'elle souhaite utiliser.
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
20
21
22
23
24
25
26
27 <?php // Main page # INIT @session_start(); # PREPARE PAGE $page['container']['header']='<p>ceci est le header<p/>'; $page['container']['footer']='<p>ceci est le footer<p/>'; // appel du Controller Principal require_once "./control/controller.inc.php"; // Appel des vues souhaitées require_once './view/page/articleView.inc.php'; // preparation du container principal $page['container']['main']=$page['container']['test']; # OUTPUT final require_once './view/frameSet/mainFrameSet.inc.php'; echo $page['container']['frameSet']; ?>
Ca peux être un header ou/et un footer, un controller général ou/et particulier, certains composant de vues et enfin un frameSet générique ou spécifique qui va tout mettre en forme. Pratique et souple donc, pour peux que l'on soit en présence d'une application non orienté métier ou l'on préférera un framework plus complet. Ce qui est n'est pas mon cas ici.
Mon problème est ici que je ne vois absolument pas ou effectuer les traitement qui vont influencer la génération de la vue. Une boucle pour afficher les articles par exemple, ou une condition pour afficher un message ou non.
La confusion viens justement de cette page *.php qui n'a pas vraiment de statut. Fait elle partie de la vue ? Si c'est le cas, doit on mettre les traitement php dedans et appeler à chaque fois des petit bout de vue ? Ca ne semble pas très pratique... De plus, j'aimerais bien n'y mettre que les appel aux différents composants. A contrario, faudrait-il mettre ces traitement dans les composant de la vue (ici "articleView") ? Mais on mélangerais les traitement et les affichage alors.. et puis ce n'est pas du tout pratique vu que l'ensemble des affichage d'un composants de la vue doit être contenu dans une variable (ici $page['container']['test']), ce qui sous-entend qu'on ne doit y mettre que du HTML pur..!
En Java/JSF par exemple, les vues sont les pages appelées. Les boucles s'effectue donc dans ces pages avec des instruction spécifique. Mais ici vue et page appelée semblent séparées.
Bref tout cela semble prometteurs mais je sèche quand il s'agit d'aller plus loin que ce que l'exemple propose. L'affichage d'une liste d'article par exemple.
Des idées ? Ce modèle simple est un parfait compromis pour mettre en place facilement une structure MVC, sans pour autant s'y connaitre en POO.
Merci beaucoup.
Partager