| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- <sect3 id="zend.controller.router.routes.static">
- <title>Zend_Controller_Router_Route_Static</title>
- <para>
- הדוגמאות למעלה משתמשות כולן בניתוב דינאמי -- נתבים יכולים להכיל תבניות שניתן להתאים מולן.
- למרות, שלפעמים נתב מסויים מוגדר תמיד אותו דבר, ושימוש בביטויים רגולריים יכול להוות מטרד וביצועים פחות טובים.
- התשובה לבעיה ספציפית זו היא שימוש בנתבים סטטיים:
- </para>
- <programlisting role="php"><![CDATA[
- $route = new Zend_Controller_Router_Route_Static(
- 'login',
- array('controller' => 'auth', 'action' => 'login')
- );
- $router->addRoute('login', $route);
- ]]>
- </programlisting>
- <para>
- הנתב למעלה יתאים קישור כמו <code>http://domain.com/login</code>, וינתב אותו אל <code>AuthController::loginAction()</code>.
- </para>
- <note id="zend.controller.router.routes.static.warning">
- <title>אזהרה: נתבים סטטיים חייבים להכיל את כל הפרמטרים הדרושים</title>
- <para>
- מאחר ונתב סטטי לא מעביר שום פרמטר מהקישור לאובייקט המבוקש, חובה להעביר את כל הפרמטרים הדרושים לניתוב הבקשה כברירת מחדל בניתוב עצמו.
- אם פרמטרט ה "controller" או "action" יהיו חסרים, סביר להניח שיגרמו תוצאות לא צפויות וכנראה גם לא ינתבו למקום הנכון אם בכלל..
- </para>
- <para>
- כברירת מחדל וכחוק, תמיד יש להעביר את הפרמטרים הבאים:
- </para>
- <itemizedlist>
- <listitem><para>controller</para></listitem>
- <listitem><para>action</para></listitem>
- <listitem><para>module (אם לא מוגדר כ default)</para></listitem>
- </itemizedlist>
- <para>
- כמו כן ניתן להעביר את הפרמטר "useDefaultControllerAlways" לקונטרולר הראשי בעת ההתחלה:
- </para>
- <programlisting role="php"><![CDATA[
- $front->setParam('useDefaultControllerAlways', true);
- ]]></programlisting>
- <para>
- למרות, שדרך זו היא לא מומלצת, ותמיד רצוי להגדיר את פרמטרים ברירת המחדל בכל ניתוב סטטי.
- </para>
- </note>
- </sect3>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|