2

A ce moment je veux construire un framework MVC. Tout va bien mais maintenant j'ai un problème entre le contrôleur et la vue. J'espère que tu peux m'aider.Question sur la construction de son propre framework MVC (PHP)

Mon MVC n'est pas si différent de MVC, il utilise le même concept, mais techniquement, j'ai un problème. La question est: comment prendre les données du contrôleur une fois la vue chargée? N'oubliez pas que dans les vues vous n'utilisez pas de globals ou quelque chose comme, tous les paramètres (comme la réponse DB, etc.) doivent être passés à la vue et la vue l'utilise directement (comme ... par exemple, CodeIgniter).

Je ne sais pas comment le dire mieux, je suis désolé si vous ne me comprenez pas. Mais j'espère que tu peux!

Répondre

0

Vous devez transmettre à la vue une référence à l'objet du contrôleur ou la vue doit utiliser des méthodes statiques sur une classe de contrôleur associée. La vue appelle ensuite les méthodes sur le contrôleur pour afficher les résultats. La vue soumet également les données de formulaire au contrôleur via l'objet ou la classe du contrôleur.

+0

Je ne pense pas que la vue devrait savoir sur le contrôleur, vraiment. Il devrait simplement attendre (et vérifier, évidemment) l'existence des variables dont il a besoin. Il n'a pas à se soucier de "qui" l'utilise ... si les variables sont là, il les affiche. – johnnietheblack

3

Vous souhaitez probablement lier une liste de variables à l'espace de noms de la vue.

Vous pouvez parcourir Kohana's View class pour trouver de l'inspiration ou des idées.

3

Le point derrière le framework MVC est qu'une View ne devrait pas avoir besoin de connaître le Controller et son implémentation. Une vue devrait juste avoir une liste de variables dont elle a besoin pour être rendue correctement, et l'implémentation de Controller s'inquiète de s'assurer que ces variables sont présentes dans la vue. Puis-je vous demander pourquoi vous concevez votre propre framework MVC? Il y a beaucoup de solutions fantastiques, je vous recommande personnellement d'essayer CakePHP, je l'ai utilisé pour expédier plusieurs produits commerciaux et je le jure!

+0

"L'implémentation du contrôleur s'inquiète de s'assurer que ces variables sont présentes dans la vue" - cela sonne comme doubler le travail: si vous mettez à jour View, vous devez également mettre à jour Controller. Si cela ne nécessite pas la mise à jour du modèle ainsi que l'utilisation de Model (en lecture stricte), cela aurait plus de sens pour l'OMI. –

0

Si votre implémentation View utilise un moteur de modèle, il existe généralement un mécanisme permettant d'ajouter des données clé/valeur arbitraires à la portée du modèle. Si vous n'avez pas progressé jusqu'à ce point, il vaut probablement la peine de penser à une stratégie similaire.

Questions connexes