Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 15-07-2011 10:56:17

Neamar
Nouveau membre
Date d'inscription: 05-07-2011
Messages: 9
Site web

Données de modèles globales

Bonjour,

Sur mon layout (global pour toute l'application), j'ai besoin de présenter des données communes à toutes les pages (typiquement, une liste d'actions que peut faire l'utilisateur s'il est connecté). Ces actions sont récupérées de la base de données.

Une solution serait de faire une aide de vue qui afficherait cela, mais je trouve sale de faire des requêtes SQL dans la couche "Vue". Au final, je cherche donc une sorte de fonction "globalAction" qui serait appelée à chaque chargement de page lors de la couche Modèle.
Pour l'instant, deux solutions :

- dans chacune de mes fonction ***Action, charger les données communes. C'est évidemment nul et ça ne respecte pas la compartimentation.
- utiliser un plugin. Ça marche, mais ça ne me paraît pas propre...

Des idées ? Merci !

Hors ligne

 

#2 15-07-2011 11:34:00

damdamien
Membre
Date d'inscription: 02-07-2011
Messages: 22

Re: Données de modèles globales

Moi à ta place je crérais un helper de vue.

Tu vas pas réelement faire une requête SQL dans ce helper. Tu vas faire apel à un model qui va ce charger de la faire.

Si tu fais du traitement AJAX avec autocompletion ca revient un peu au meme. Et pourtant on le fait !!!!

Hors ligne

 

#3 15-07-2011 11:35:47

Neamar
Nouveau membre
Date d'inscription: 05-07-2011
Messages: 9
Site web

Re: Données de modèles globales

La requête SQL reste tout de même là, cachée.

Dans ma conception du MVC, on doit pouvoir fermer la connexion à la BDD avant le rendu de la vue...
Après, il faut évidemment rester propre et concis, et si c'est la meilleure solution c'est effectivement celle sur laquelle je me dirigerais. Merci !

Hors ligne

 

#4 15-07-2011 12:01:04

damdamien
Membre
Date d'inscription: 02-07-2011
Messages: 22

Re: Données de modèles globales

Alors, si tu souhaites respecter ta conception. Il va te falloir créé un plug-in.

Que tu face l'un ou l'autre du moment que c'est bien conçu cela ne posera pas de probleme. sinon pourquoi ne pas utilisé un tableau de session que tu alimenterais à la connection de ton membres.

Dernière modification par damdamien (15-07-2011 12:01:24)

Hors ligne

 

#5 15-07-2011 12:03:04

Neamar
Nouveau membre
Date d'inscription: 05-07-2011
Messages: 9
Site web

Re: Données de modèles globales

Mais la logique d'un plug-in est plus celle du Contrôleur que du Modèle, et il n'y a donc pas plus de raisons de faire le traitement ici wink

La solution "remplir à la connexion" est peut-être la plus agréable, même si elle impose de synchroniser en permanence. Merci !

Hors ligne

 

#6 15-07-2011 13:35:14

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: Données de modèles globales

Le fait que la logique du plugin est similaire à celle du contrôleur dans ce cas est justement une bonne chose non ?

Dans un MVC correct, c'est le controlleur qui appelle le modèle, qui lui contacte la BDD, donc l'idée du plugin qui appelle le modèle semble cohérent...

Hors ligne

 

#7 15-07-2011 13:37:14

Neamar
Nouveau membre
Date d'inscription: 05-07-2011
Messages: 9
Site web

Re: Données de modèles globales

Vu comme ça, ça se tient... sauf qu'ici le plugin n'appelle par le modèle, il est le modèle !

Dans le code du plugin, on retrouvera la requête -- donc du M dans le C. Ou j'ai raté une étape ?

En tout cas, merci pour ces propositions !

Dernière modification par Neamar (15-07-2011 13:40:52)

Hors ligne

 

#8 15-07-2011 13:40:29

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: Données de modèles globales

Pourquoi le plugin ne pourrait-il pas appeler ton modèle ? C'est tout à fait possible, à partir du moment où ta classe de modèle est chargé avant l'appel du plugin dans ton bootstrap, et que ta connexion BDD est bien active elle aussi avant l'appel.

Pour que tout soit chargé avant, il te faudra probablement ajouter une ou deux méthodes au bootstrap de l'appli, mais normalement ça marche...

Hors ligne

 

#9 15-07-2011 13:41:58

Neamar
Nouveau membre
Date d'inscription: 05-07-2011
Messages: 9
Site web

Re: Données de modèles globales

Qu'appelles-tu "modèle" ici ? Une action de contrôleur ? Je ne me représente pas bien l'objet "modèle" dans ce cas :\

Hors ligne

 

#10 15-07-2011 13:47:20

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: Données de modèles globales

Ton modèle, c'est ta classe qui contient les données, c'est le modèle classique du MVC (pourquoi pas un Zend_Db_Table ou un Zend_Db_Table_Row, ou n'importe quel autre modèle).

Hors ligne

 

#11 15-07-2011 13:54:29

Neamar
Nouveau membre
Date d'inscription: 05-07-2011
Messages: 9
Site web

Re: Données de modèles globales

Ok, je pensais que tu étais parti sur une autre sémantique. Ça se tient, merci et à la prochaine !

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages