Pattern MVC et liens hypertextes

Résolu
mentral Messages postés 56 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 22 janvier 2008 - 3 août 2006 à 17:53
mentral Messages postés 56 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 22 janvier 2008 - 7 août 2006 à 11:18
Imaginons un framework PHP type MVC classique, avec le index.php à la racine du serveur comme point d'entrée unique de l'application, avec les modules déclenchés par $_GET, etc. Ma question est : justement, lorsque l'on construit sa webapp, il faut bien placer des liens sur la page pour déclencher les actions. Mais le contenu de ces liens, autrement dit l'URL que va analyser le contrôleur, fait-il plutôt partie de la vue ou du modèle ? Est-ce plutôt une forme de présentation ou une forme de vue ?

D'un côté, on peut considérer cela comme de la présentation : ces liens sont des éléments de l'interface de la webapp, au même titre que des boutons dans une application non-web standard. D'un autre côté, par le fait qu'ils doivent être formatés (pas question de rentrer l'URL www.site.com/module/action.html "à la main", cela doit être généré par le framework...), ils deviennent une sorte de données.

Niveau code, les deux alternatives que je vois sont les suivantes :
1. du code php dans les templates qui ne se contente pas d'afficher une variable déjà calculée, style
[<?php echo $url->build( ">Action du module]
2. ce code est calculé dans le modèle et renvoyé sous forme d'une variable ; le template devient :

[<?php echo $links[1]; ?> Action du module]

Voilà ; toutes réponses ou remarques sont les bienvenues sur ce point, il est vrai, un peu perfectionniste !






[ NemetraL ]

4 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 août 2006 à 09:07
Hello,

ça en revient sensiblement au même. On parle PHP là, un langage orienté web. Mais, parlong d'un framework que je connais bien, ayant bossé dessus dans ma précédente boîte : XMLRad. C'est un framework basé sur XML/XSL-T, un langage serveur au choix (un paquet sont supportés, dont PHP, mais aussi Delphi, C#, Java, etc...), et une bdd.
Quand tu charges un module, t'as une url du type XMLRad.exe/module.dll'option1=valeur1
De toutes façons, c'est ce que tu verras dans ta barre d'adresse. L'url est construite dynamiquement par me module, selon les actions entreprises : c'est géré au sein du module, et dépend de la façon d'appeler le module. Dans le cas d'XMLRad, ça reste simple, puisque tu reprends l'url telle quelle, dan tes pages :
 [module.dll'option2=valeur2 bla]
Je ne sais pas ce qu'il en est pour PHP dans ce framework vu que nous l'utilisons avec Delphi.
Mais ça, c'est pour un module ne gérant pas seul ces options.
Il y avait un module de pagination, justement. Ben celui là, il te suffisait de l'inclure dans ton module principal, et tu n'avais plus rien à gérer. Le sous-module de paginatiàon se chargeant de savoir où il était, et ce qu'il devait afficher. Vu que l'on jouait avec un flux XML et une technologie qu'ils appelaient les "fragments xml", le moteur interne du sous module créait ses fragments, et appelait uniquement ce dont il avait besoin dans la bdd, en fonction de l'endroit (de la page) où on se trouvait.
Mais, d'où la difficulté de te répondre : c'était dépendant du fonctionnement interne du framework.
Bref, tout dépend de la technologie que tu emploies. Mais l'intérêt d'un framework, c'est quand même de pouvoir TRES FACILEMENT insérer des modules, ou créer les tiens évidemment, avec un minimum de travail de développement. Donc, trouver un moyen de gérer ce genre de choses.
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
3 août 2006 à 18:07
hello,

pas le temps de m'étendre ce soir, mais je vote pour la solution 1.

Je l'expliquerai demain.
0
mentral Messages postés 56 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 22 janvier 2008
6 août 2006 à 04:46
Re-salut

Plus de précisions sur le problème :

Faut-il faire une distinction entre un simple lien pointant sur un module (ex. un lien de menu pointant sur le module "forum") et un lien intrinsèque à un module (ex. un lien sur un module de page "normale" pointant vers la page suivante), le second lien étant dynamique (car les "pages suivantes" changent à chaque page).

Je suis sûr que la question s'est déjà posée pour des frameworks existants... Le problème est de trouver "noir sur blanc" la solution retenue.


[ NemetraL ]
0
mentral Messages postés 56 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 22 janvier 2008
7 août 2006 à 11:18
Salut

J'aime bien l'idée du sous-module de pagination. Je vais creuser le truc. Dans le framework que j'essaye de mettre en place, il y a quelque chose d'un peu similaire à ces "fragments xml", en plus simple certainement, mais qui devrait rendre la chose possible.

[ NemetraL ]
0
Rejoignez-nous