4 votes

Zend Framework : Flash Messenger, ajouter un message à partir du modèle

Une idée sur la meilleure façon d'ajouter un message à la messagerie flash à partir du modèle ?

Comme FlashMessenger est une aide à l'action, cela ne semble pas possible. La solution évidente est donc de créer un objet message interne dans le modèle, et de le renvoyer au contrôleur d'où vous pouvez utiliser addMessage(). Mais si vous voulez renvoyer quelque chose d'autre, cela ne fonctionne pas.

Une autre idée serait de créer un espace de nom de session supplémentaire pour ces messages internes, qui serait ensuite fusionné avec les messages de l'espace de nom de Flash Messenger au moment de la sortie ?

Quelqu'un a-t-il une idée ou une expérience à ce sujet ? Merci.

7voto

Goran Jurić Points 1512

Vous pouvez récupérer le FlashMessenger à partir de votre modèle comme ceci :

$messenger = Zend_Controller_Action_HelperBroker::getStaticHelper('flashMessenger');
$messenger->addMessage('test message');

3voto

Gordon Points 156415

Les deux voies semblent valables.

Une idée serait d'ajouter un tableau $message à votre modèle, auquel l'aide à l'action peut accéder pour récupérer les messages. De cette façon, vous pourriez renvoyer plusieurs messages à la fois.

Une autre option serait d'utiliser un Modèle sujet/observateur . Faites en sorte que vos modèles implémentent l'interface Subject et lorsque vous avez besoin de produire des messages, informer les observateurs, par exemple le messager flash (pour lequel vous devez implémenter l'interface Observer).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X