Zend_Controller-ActionHelpers-FlashMessenger.xml 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect3 id="zend.controller.actionhelpers.flashmessenger">
  5. <title>FlashMessenger</title>
  6. <sect4 id="zend.controller.actionhelper.flashmessenger.introduction">
  7. <title>Введение</title>
  8. <para>
  9. Помощник <emphasis>FlashMessenger</emphasis> позволяет передавать сообщения,
  10. которые требуется отобразить пользователю при следующем запросе.
  11. Это достигается путем сохранения сообщений в
  12. <classname>Zend_Session_Namespace</classname>, откуда они могут быть получены при
  13. последующих запросах. Если вы планируете использовать
  14. <classname>Zend_Session</classname> или <classname>Zend_Session_Namespace</classname>,
  15. имеет смысл инициализировать сессию еще в файле загрузки командой
  16. <methodname>Zend_Session::start()</methodname>. (Подробнее о работе с сессиями в
  17. документации к
  18. <link linkend="zend.session.advanced_usage.starting_a_session">Zend_Session</link>)
  19. </para>
  20. </sect4>
  21. <sect4 id="zend.controller.actionhelper.flashmessenger.basicusage">
  22. <title>Пример использования</title>
  23. <para>
  24. Нижеприведенный пример иллюстрирует самое простое использование помощника
  25. <emphasis>FlashMessenger</emphasis>. При вызове действия <filename>/some/my</filename>
  26. добавляется сообщение "Запись сохранена!". При последующем вызове действия
  27. <filename>/some/my-next-request</filename> это сообщение будет
  28. получено из сессии (сразу после этого удалено) и отображено пользователю.
  29. </para>
  30. <programlisting language="php"><![CDATA[
  31. class SomeController extends Zend_Controller_Action
  32. {
  33. /**
  34. * FlashMessenger
  35. *
  36. * @var Zend_Controller_Action_Helper_FlashMessenger
  37. */
  38. protected $_flashMessenger = null;
  39. public function init()
  40. {
  41. $this->_flashMessenger =
  42. $this->_helper->getHelper('FlashMessenger');
  43. $this->initView();
  44. }
  45. public function myAction()
  46. {
  47. /**
  48. * метод для получения экземпляра помощника
  49. * Zend_Controller_Action_Helper_FlashMessenger
  50. */
  51. $this->_flashMessenger->addMessage('Запись сохранена!');
  52. }
  53. public function myNextRequestAction()
  54. {
  55. $this->view->messages = $this->_flashMessenger->getMessages();
  56. $this->render();
  57. }
  58. }
  59. ]]></programlisting>
  60. </sect4>
  61. </sect3>