- 1
[Opened] [Résolu] Méthode optimale pour appeler des pages dynamiques
Posted by dantahoua on 01/13/2010 22:00
Bonjour. Commençons simple: J'ai une table "page" qui contient id et contenue html de mes pages (pour l'instant, plus tard il y aura une table sections reliés et autre fioritures...). Je veux donc passer l'id de la page en paramètre pour appeler le bon contenu.
Je voudrais savoir quel est le meilleur endroit pour gérer l'affichage des pages.
- Dans le contrôleurs de base (dans mon main par exemple, default.classic.php), dans index, j'imagine que nom car si on doit faire beaucoup de traitement plus tard ca serait mieux dans une classe à part ou un module?
- Ou dans le contrôleur d'un module "page" dans index ?
- Ou dans la réponse de base du site "myHtmlResponse" (j'imagine que non aussi)?
- Dans une classe à part.
Sachant que
- Plus tard l'id de la page passé en paramètre permettra de construire la page au complet, (sections de la page, contenu centrale de la page, zone de pub de la page en question, fil d'ariane...)
- Je ne veut pas me retrouver avec des url de la mort (j'utilise le moteur basic_significant)
[Opened] Re: Méthode optimale pour appeler des pages dynamiques
Posted by laurentj on 01/14/2010 10:40
bonjour,
D'abord, il faut récupérer le contenu. Si il n'y a rien à faire sur les données que l'on récupère en base, tu peux appeler directement un dao, sinon tu fais une classe métier, qui appellera les daos qu'il faut, et renverra les données prêtes à être injectées dans un template.
Tu appelles cette classe metier (auquel tu donnes donc l'id de la page), soit directement à partir du contrôleur, soit dans une zone (ce qui te permettra de reutiliser cette zone et donc l'affichage du contenu, dans plusieurs actions si necessaire, et de profiter automatiquement d'un cache si tu l'actives). Zone bien sûr que tu appelles dans ton controleur.
Ton controleur assigne ensuite le contenu généré (par la zone ou via un sous-template) au template principale de la réponse.
après, que ce contrôleur soit dans ton module main, un module page ou un module schmilblick, c'est toi qui voit. Pense juste à la reutilisabilité. Peut-être voudras-tu réutiliser ce module d'affichage de page statique html dans d'autre projet (donc dans un module appelé 'main', ce n'est pas très pertinent ;-) )
Plus tard, tu veux pouvoir afficher d'autres contenus relatif à cette page, en plus du contenu même. Tu vas alors créer autant de zones que de type de contenu. Zones que tu appeleras dans la même action, et que tu injecteras dans le template de la réponse.
- 1