Zend_Controller-ActionHelpers-Json.xml 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <sect3 id="zend.controller.actionhelpers.json">
  2. <title>JSON</title>
  3. <para>
  4. תגובות JSON נעשות יותר ויותר פופולריות כשזה מגיע לעבודה מול AJAX; ניתן לעבד קוד JSON ישירות בצד הלקוח ולכן לגרום למערכת לבצע את הטעינה והעיבוד מהר יותר.
  5. </para>
  6. <para>
  7. תוסף העזרה של JSON עושה כמה דברים:
  8. </para>
  9. <itemizedlist>
  10. <listitem><para>
  11. ביטול תבניות אם כרגע פעילות.
  12. </para></listitem>
  13. <listitem><para>
  14. ביטול ViewRenderer אם כרגע פעיל.
  15. </para></listitem>
  16. <listitem><para>
  17. הגדרת כותר ה 'Content-Type' ל 'application/json'.
  18. </para></listitem>
  19. <listitem><para>
  20. כברירת מחדל, מחזיר את התוצאה ישר, ללא המתנה עד שהפעולה תסתיים.
  21. </para></listitem>
  22. </itemizedlist>
  23. <para>
  24. השימוש הוא פשוט:
  25. </para>
  26. <programlisting role="php"><![CDATA[
  27. class FooController extends Zend_Controller_Action
  28. {
  29. public function barAction()
  30. {
  31. // do some processing...
  32. // Send the JSON response:
  33. $this->_helper->json($data);
  34. // or...
  35. $this->_helper->json->sendJson($data);
  36. // or retrieve the json:
  37. $json = $this->_helper->json->encodeJson($data);
  38. }
  39. }
  40. ]]>
  41. </programlisting>
  42. <note>
  43. <title>תבניות פעילות</title>
  44. <para>
  45. אם ישנה תבנית נפרדת לתגובות מסוג JSON -- כדי אולי לעטוף את התגובה של JSON שהתקבלה בתוכן מסויים -- כל מתודה בתוסף העזרה של JSON מקבל פרמטר שני.
  46. פרמטר שני זה מפעיל או מבטל תבניות. העברת פרמטר שני <code>true</code> ישאיר את התבניות פעילות:
  47. </para>
  48. <programlisting role="php"><![CDATA[
  49. class FooController extends Zend_Controller_Action
  50. {
  51. public function barAction()
  52. {
  53. // Retrieve the json, keeping layouts:
  54. $json = $this->_helper->json->encodeJson($data, true);
  55. }
  56. }
  57. ]]>
  58. </programlisting>
  59. </note>
  60. </sect3>
  61. <!--
  62. vim:se ts=4 sw=4 et:
  63. -->