Bonjour,
Je m'initie à SMARTY, suite au cours de Eric Pommereau, mais habitué à du MVC simpliste, j'ai un peu de mal à m'adapter. J'aimerai vos conseils
Voici, en simplifié et brevement, ce que j'ai:
MODELE:
VUE:
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 $contenu= "" switch($_GET['a']) { ... case "modifSujet": $sujetForum= new SujetForum('1',$_GET['i'],array()); $contenu= $sujetForum->formulaireSujet(); break; case "voirLesSujets": $sujetForum= new SujetForum('1',"",array()); $contenu= $sujetForum->afficherLesSujets(); break; ... } require_once(../vue/affiche.html.php);
CONTROLEUR:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3... <?php echo contenu ?> ...
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 class SujetForum { ... public function formulaireSujet() { $htmlCode= //Formulaire POST ... <input type="text" name="titreSujet" value="{$this->titreSujet}" /> <input type="text" name="detailsSujet" value="{$this->detailsSujet}" /> ... return $htmlCode; } public function afficherLesSujets() { $htmlCode = // Affiche les sujets puis: $htmlCode.= formulaireSujet(); return $htmlCode; } ... }
Alors voilà, maintenant pour migrer tout en SMARTY, et ce dans les regles de l'art, je sais pas trop comment faire... en ce qui concerne la liaison entre le modele et le controleur..
Je pense qu'il faut garder le systeme du modele actuel avec l'instanciation d'un Smarty en debut et sa generation en fin, car le rendu final n'est pas le resultat d'un seul methode mais de plusieurs methodes de plusieurs classes, pour une page Web complete.
J'ai une vague idée d'un grand fichier template qui inclurai ou non des templates de mes methodes, mais Smarty est encore vague pour moi.. et ce que je vais ecrire maintenant est faux..
Comment font les proffessionnels?
MODELE:
VUE (Template result.tpl):
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 $smarty = new Smarty(); switch($_GET['a']) { ... case "modifSujet": $sujetForum= new SujetForum('1',$_GET['i'],array()); $formSujet= $sujetForum->formulaireSujet(); break; case "voirLesSujets": $sujetForum= new SujetForum('1',"",array()); $affichSujets= $sujetForum->afficherLesSujets(); break; ... } $smarty->display('result.tpl');
CONTROLEUR:
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 ... <html> ... {if $formSujet != ''} {include file="formCreationSujet.tpl"} {else} {/if} {if $affichSujet != ''} {include file="affichageSujets.tpl"} {else} {/if} </html> ...
Donc voilà.. Si vous pouviez m'eclairer sur ce passage de MVC à Smarty, je vous en serez bien reconnaissant! Merci
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 class SujetForum { ... public function formulaireSujet() { ?? $smarty->assign('titreSujet', {$this->titreSujet}); $smarty->assign('detailsSujet', {$this->detailsSujet}); return ?? } public function afficherLesSujets() { ?? return ?? } ... }
Partager