Zend_Controller-ActionHelpers-FlashMessenger.xml 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <sect3 id="zend.controller.actionhelpers.flashmessenger">
  2. <title>FlashMessenger</title>
  3. <sect4 id="zend.controller.actionhelper.flashmessenger.introduction">
  4. <title>简介</title>
  5. <para>
  6. <code>FlashMessenger</code>助手允许你传递用户可能需要在下个请求看到的消息。为实现它,<code>FlashMessenger</code>使用<code>Zend_Session_Namespace</code>来存储消息以备将来或下个请求来读取。如果你计划使用<code>Zend_Session</code>或者<code>Zend_Session_Namespace</code>,在引导文件里用<code>Zend_Session::start()</code>初始化,的确是个好主意。(参见<link linkend="zend.session.advanced_usage.starting_a_session">Zend_Session</link>文档有更多的关于它的用法的细节。)
  7. </para>
  8. </sect4>
  9. <sect4 id="zend.controller.actionhelper.flashmessenger.basicusage">
  10. <title>Basic Usage Example</title>
  11. <para>
  12. 下面的例子展示flash messenger最基本的用法。当动作<code>/some/my</code> 被调用,它添加flash message "Record Saved!",随后的对动作<code>/some/my-next-request</code>的请求将读取它(并也这样删除它)。
  13. </para>
  14. <programlisting role="php"><![CDATA[
  15. class SomeController extends Zend_Controller_Action
  16. {
  17. /**
  18. * FlashMessenger
  19. *
  20. * @var Zend_Controller_Action_Helper_FlashMessenger
  21. */
  22. protected $_flashMessenger = null;
  23. public function init()
  24. {
  25. $this->_flashMessenger =
  26. $this->_helper->getHelper('FlashMessenger');
  27. $this->initView();
  28. }
  29. public function myAction()
  30. {
  31. /**
  32. * default method of getting
  33. * Zend_Controller_Action_Helper_FlashMessenger instance
  34. * on-demand
  35. */
  36. $this->_flashMessenger->addMessage('Record Saved!');
  37. }
  38. public function myNextRequestAction()
  39. {
  40. $this->view->messages = $this->_flashMessenger->getMessages();
  41. $this->render();
  42. }
  43. }
  44. ]]>
  45. </programlisting>
  46. </sect4>
  47. </sect3>