[MANUAL] English:
[zend.git] / documentation / manual / ru / module_specs / Zend_Controller-Router-Route-Static.xml
blob6aea2256ca1fd0747821ab8b344c289b3c561def
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Reviewed: no -->
3 <sect3 id="zend.controller.router.routes.static">
4     <title>Zend_Controller_Router_Route_Static</title>
6     <para>
7         Во всех примерах выше использовались динамические маршруты - маршруты,
8         содержащие шаблоны для сравнения. Но часто определенный маршрут должен
9         быть неизменным, и применение регулярных выражений по отношению к нему
10         было бы излишеством. Решением в данной ситуации является использование
11         статических маршрутов:
12     </para>
14     <programlisting language="php"><![CDATA[
15 $route = new Zend_Controller_Router_Route_Static(
16     'login',
17     array('controller' => 'auth', 'action' => 'login')
19 $router->addRoute('login', $route);
20 ]]></programlisting>
22     <para>
23         Этот маршрут будет соответствовать URL
24         <code>http://domain.com/login</code> и приводит к вызову
25         <code>AuthController::loginAction()</code>.
26     </para>
28     <note id="zend.controller.router.routes.static.warning">
29         <title>Предупреждение: статические маршруты должны содержать все необходимые значения по умолчанию</title>
31         <para>
32             Поскольку статический маршрут не передает части URL в качестве
33             параметров объекту запроса, то вы <emphasis>должны</emphasis>
34             передавать все параметры, необходимые для адресации запроса,
35             в качестве значений по умолчанию. Пропуск значений "controller" или
36             "action" приведет к неожиданным результатам,
37             и, скорее всего, сделает невозможой адресацию запроса.
38         </para>
40         <para>
41             Правило большого пальца: всегда предоставляйте следующие значения
42             по умолчанию:
43         </para>
45         <itemizedlist>
46             <listitem><para>controller</para></listitem>
47             <listitem><para>action</para></listitem>
48             <listitem><para>module (если нет модуля, используемого по умолчанию)</para></listitem>
49         </itemizedlist>
51         <para>
52             Вы можете также передавать параметр "useDefaultControllerAlways"
53             фронт-контроллеру в процессе загрузки:
54         </para>
56         <programlisting language="php"><![CDATA[
57 $front->setParam('useDefaultControllerAlways', true);
58 ]]></programlisting>
60         <para>
61             Однако это всего лишь обходной прием, всегда лучше явным
62             образом указывать для маршрута значения по умолчанию.
63         </para>
64     </note>
65 </sect3>
66 <!--
67 vim:se ts=4 sw=4 et:
68 -->