|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Étudiant Inscription : avril 2009 Messages : 11 ![]() |
Bonjour, à tous j'ai suivi le tutoriel suivant pour développer son propre Framework MVC.
J'essaye actuellement de changer le pattern Template view par un composite view mais je ne comprend pas comment lier mon ActionController à celui-ci. Pour cela je dispose donc des classes CompositeView et SimpleView qui extends toute les deux une classe AbstractView. Merci beaucoup de votre aide |
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() Inscription : août 2007 Messages : 360 ![]() |
Bonjour,
Ne faudrait-il pas ajouter du code ??? Cdt, Mathieu |
|
00
|
|
|
#3 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Personnellement, j'ai créé un Singleton ViewManager capable d'appeler les vues, ça ressemble à ça :
Code :
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||
|
00
|
|
|
#4 |
|
Membre éclairé
![]() Inscription : août 2007 Messages : 360 ![]() |
Tu es encore un peu avare en code source...
|
|
00
|
|
|
#5 | ||||||
|
Invité de passage
![]() Étudiant Inscription : avril 2009 Messages : 11 ![]() |
Toute mes excuses j'ai posté tard hier et j'ai oublié de donner les liens ^^
Alors j'ai suivi ce tuto pour le framework MVC http://julien-pauli.developpez.com/t...vc-controleur/ Pour mon composite pattern je me suis très fortement basé sur http://www.devshed.com/c/a/PHP/PHP-C...esign-Pattern/ ma classe AbstractView Code php :
Code php :
Ma classe SimpleView Code php :
Dan le tuto MVC il s'agit d'un Template Pattern et la classe Response s'occupe des variables de la vue( __set(), __get() ), hors avec le composite View chaque vue s'occupe elle même de ses variables. Comment lier le ActionControlller au composite ? Car j'ai une CompositeView qui correspond à mon Layout principal puis les vues qui le compose. Merci beaucoup |
||||||
|
|
00
|
|
|
#6 |
|
Membre éclairé
![]() Inscription : août 2007 Messages : 360 ![]() |
Tu ne donnes toujours pas le code de ton BaseController ni de ta classe Response, j'ai vraiment du mal à cerner ton problème...
|
|
00
|
|
|
#7 | ||||||||
|
Invité de passage
![]() Étudiant Inscription : avril 2009 Messages : 11 ![]() |
Voici mon ActionController:
Code php :
Ma classe Response Code php :
Comment implémenter le fait que j'ai plusieurs vues pour un seul Layout dans mon ActionController ? Utilisation d'un ViewManager? je n'ai aucune idée de comment l'implémenter. Avec un TemplateView je faisait par exemple Code :
Mais maintenant j'ai plusieurs vues et la est mon problème. J'aimerai éviter de faire quelque chose du type. Code php :
Je ne sais pas trop si je suis clair, je m'en excuse Encore merci de l’intérêt que vous portez à mon problème |
||||||||
|
|
00
|
|
|
#8 |
|
Membre éclairé
![]() Inscription : août 2007 Messages : 360 ![]() |
As tu un seul layout pour chaques vues ou des layouts différents ?
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Étudiant Inscription : avril 2009 Messages : 11 ![]() |
Alors si ne me trompe pas, j'ai un layout par défaut qui contient header, footer, ensuite la dedans j'inclue mon template qui correspond à un CompositeView et qui contient donc plusieurs SimpleView.
Je vais essayer de mieux expliquer mon besoin. Imaginons que je prenne pour exemple la page profile de Facebook elle est composé du wall personnel, liste d'amis, information personnel. Maintenant supposons avec mon framework je reçois une adresse de type http://mon_site_web/profile&id=1 profile correspond au nom de mon module qui est associé à un template profile qui correspond à CompositeView lui même composé de SimpleView ou d'autre CompositeView qui sont liste d'amis, information personnel... qui sont accessible via http://mon_site_web/listeamis par exemple. Du coup il faudrait que je dispose d'un View manager chargé d'identifier les SimpleView et d'appeler les actions correspondantes Désolé j’avoue avoir un peu de mal à expliquer mon problème de façon simple ^^ |
|
|
00
|
|
|
#10 |
|
Membre éclairé
![]() Inscription : août 2007 Messages : 360 ![]() |
Je ne pense pas qu'une "view" doivent connaitre le controller, ça va a l'encontre du modèle vue controlleur...
C'est très abstrait ce que tu veux réaliser. J'ai toujours du mal à comprendre ou tu veux en venir !!! J'essaye tout du moins de t'aider le plus que je peux... Cordialement, Mathieu |
|
00
|
|
|
#11 | ||||
|
Invité de passage
![]() Étudiant Inscription : avril 2009 Messages : 11 ![]() |
Bon je vais essayer de reprendre alors:
Avec un template pattern imaginons 2 classes Code :
Lorsque j'appelle l'adresse http://monsite/bonjour/index en résumé ma classe FrontController crée un objet Request, Response,ActionController Mon uri est dispatchée par mon objet Request, mon objet ActionController crée le controller correspondant et appel la fonction Index qui elle initialise ma variable $msg pour ma vue.Puis mon controller fait le rendu de celle-ci. Bon c'est le fonctionnement de MVC. Maintenant avec le pattern composite je veux créer une classe Code :
Du coup mon problème est, en utilisant le pattern composite view comment implémenter une ViewManager utilisé dans une classe dérivant ActionController qui se chargerais de récupérer les vues composite et d'initialiser leurs variables en appelant les actions correspondants. Bon je me rend compte que c'est toujours flou, peut être que je me prend la tête pour quelque chose de simple que n'arrive pas à expliquer.^^ |
||||
|
|
00
|
|
|
#12 |
|
Membre éclairé
![]() Inscription : août 2007 Messages : 360 ![]() |
Je ne comprends plus rien du tout, est-ce normal ??
Bases toi sur un framework existant (cake, symfony ou Zend)... A+ Mathieu |
|
00
|
|
|
#13 | ||||
|
Invité de passage
![]() Étudiant Inscription : avril 2009 Messages : 11 ![]() |
J'ai finalement réussi à faire quelque chose qui pourrait vous permettre de comprendre se que je désire.
J'implémente donc un pattern de composite view Dans mon exemple j'ai trois vues: index.php, hello.php, bonjour.php. Ma vue index.php est composée de hello et de bonjour Mon controller Code :
Code :
Merci de votre aide. |
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com