我正在尝试使用FlashMessenger来通知其他用户事件。有谁知道这是否可行?
像
这样的东西$flashMessenger->addMessage( array('status'=> '', 'message'=> 'Hello!'), $user);
答案 0 :(得分:1)
引用manual page of the FlashMessenger:
FlashMessenger帮助程序允许您 传递用户可能传递的消息 需要看下一个请求。至 实现这一点, FlashMessenger使用 要存储
Zend_Session_Namespace
用于将来或下一个请求的消息 检索强>
因此,消息存储在会话中 - 并且会话附加到/对应于用户;实际上是当前的用户。
会话不是为了存储不同用户之间共享的数据 - 所以我想说这个组件不能用于通知其他用户事件;至少不是本地的。
可能的解决方案是:
有点棘手,并不像你希望的那么容易,我承认......
另一个想法,而不是使用数据库,将使用一些缓存引擎(如APC,memcached,...请参阅Zend_Cache
,以避免命中数据库。
玩得开心!
答案 1 :(得分:0)
其他选项是实现您自己的会话处理并将其存储在DB(以及用户名)中。然后,您可以访问它并以任何方式更改它。当我们需要通过托管环境会话设置的一些疯狂限制(一天有限会话生命周期)时,我们已经实现了这一点。它工作得非常好,并且在默认实现方面提供了更多的可能性(例如,如果某些特定用户登录,则注销所有用户 - 例如superadmin或注册用户,如果他的密码在管理部分中更改,等等)。
但我想这对你的目的来说有点矫枉过正。而Pascal的方式就足够了。