| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- Reviewed: no -->
- <sect3 id="zend.controller.router.routes.static">
- <title>Zend_Controller_Router_Route_Static</title>
- <para>
- Во всех примерах выше использовались динамические маршруты - маршруты,
- содержащие шаблоны для сравнения. Но часто определенный маршрут должен
- быть неизменным, и применение регулярных выражений по отношению к нему
- было бы излишеством. Решением в данной ситуации является использование
- статических маршрутов:
- </para>
- <programlisting language="php"><![CDATA[
- $route = new Zend_Controller_Router_Route_Static(
- 'login',
- array('controller' => 'auth', 'action' => 'login')
- );
- $router->addRoute('login', $route);
- ]]></programlisting>
- <para>
- Этот маршрут будет соответствовать URL
- <code>http://domain.com/login</code> и приводит к вызову
- <code>AuthController::loginAction()</code>.
- </para>
- <note id="zend.controller.router.routes.static.warning">
- <title>Предупреждение: статические маршруты должны содержать все необходимые значения по умолчанию</title>
- <para>
- Поскольку статический маршрут не передает части URL в качестве
- параметров объекту запроса, то вы <emphasis>должны</emphasis>
- передавать все параметры, необходимые для адресации запроса,
- в качестве значений по умолчанию. Пропуск значений "controller" или
- "action" приведет к неожиданным результатам,
- и, скорее всего, сделает невозможой адресацию запроса.
- </para>
- <para>
- Правило большого пальца: всегда предоставляйте следующие значения
- по умолчанию:
- </para>
- <itemizedlist>
- <listitem><para>controller</para></listitem>
- <listitem><para>action</para></listitem>
- <listitem><para>module (если нет модуля, используемого по умолчанию)</para></listitem>
- </itemizedlist>
- <para>
- Вы можете также передавать параметр "useDefaultControllerAlways"
- фронт-контроллеру в процессе загрузки:
- </para>
- <programlisting language="php"><![CDATA[
- $front->setParam('useDefaultControllerAlways', true);
- ]]></programlisting>
- <para>
- Однако это всего лишь обходной прием, всегда лучше явным
- образом указывать для маршрута значения по умолчанию.
- </para>
- </note>
- </sect3>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|