Zend_Controller-Router-Route-Static.xml 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <sect3 id="zend.controller.router.routes.static">
  2. <title>Zend_Controller_Router_Route_Static</title>
  3. <para>
  4. הדוגמאות למעלה משתמשות כולן בניתוב דינאמי -- נתבים יכולים להכיל תבניות שניתן להתאים מולן.
  5. למרות, שלפעמים נתב מסויים מוגדר תמיד אותו דבר, ושימוש בביטויים רגולריים יכול להוות מטרד וביצועים פחות טובים.
  6. התשובה לבעיה ספציפית זו היא שימוש בנתבים סטטיים:
  7. </para>
  8. <programlisting role="php"><![CDATA[
  9. $route = new Zend_Controller_Router_Route_Static(
  10. 'login',
  11. array('controller' => 'auth', 'action' => 'login')
  12. );
  13. $router->addRoute('login', $route);
  14. ]]>
  15. </programlisting>
  16. <para>
  17. הנתב למעלה יתאים קישור כמו <code>http://domain.com/login</code>, וינתב אותו אל <code>AuthController::loginAction()</code>.
  18. </para>
  19. <note id="zend.controller.router.routes.static.warning">
  20. <title>אזהרה: נתבים סטטיים חייבים להכיל את כל הפרמטרים הדרושים</title>
  21. <para>
  22. מאחר ונתב סטטי לא מעביר שום פרמטר מהקישור לאובייקט המבוקש, חובה להעביר את כל הפרמטרים הדרושים לניתוב הבקשה כברירת מחדל בניתוב עצמו.
  23. אם פרמטרט ה "controller" או "action" יהיו חסרים, סביר להניח שיגרמו תוצאות לא צפויות וכנראה גם לא ינתבו למקום הנכון אם בכלל..
  24. </para>
  25. <para>
  26. כברירת מחדל וכחוק, תמיד יש להעביר את הפרמטרים הבאים:
  27. </para>
  28. <itemizedlist>
  29. <listitem><para>controller</para></listitem>
  30. <listitem><para>action</para></listitem>
  31. <listitem><para>module (אם לא מוגדר כ default)</para></listitem>
  32. </itemizedlist>
  33. <para>
  34. כמו כן ניתן להעביר את הפרמטר "useDefaultControllerAlways" לקונטרולר הראשי בעת ההתחלה:
  35. </para>
  36. <programlisting role="php"><![CDATA[
  37. $front->setParam('useDefaultControllerAlways', true);
  38. ]]></programlisting>
  39. <para>
  40. למרות, שדרך זו היא לא מומלצת, ותמיד רצוי להגדיר את פרמטרים ברירת המחדל בכל ניתוב סטטי.
  41. </para>
  42. </note>
  43. </sect3>
  44. <!--
  45. vim:se ts=4 sw=4 et:
  46. -->