1 <?xml version="1.0" encoding="UTF-8"?>
3 <sect3 id="zend.controller.router.routes.static">
4 <title>Zend_Controller_Router_Route_Static</title>
7 Во всех примерах выше использовались динамические маршруты - маршруты,
8 содержащие шаблоны для сравнения. Но часто определенный маршрут должен
9 быть неизменным, и применение регулярных выражений по отношению к нему
10 было бы излишеством. Решением в данной ситуации является использование
11 статических маршрутов:
14 <programlisting language="php"><![CDATA[
15 $route = new Zend_Controller_Router_Route_Static(
17 array('controller' => 'auth', 'action' => 'login')
19 $router->addRoute('login', $route);
23 Этот маршрут будет соответствовать URL
24 <code>http://domain.com/login</code> и приводит к вызову
25 <code>AuthController::loginAction()</code>.
28 <note id="zend.controller.router.routes.static.warning">
29 <title>Предупреждение: статические маршруты должны содержать все необходимые значения по умолчанию</title>
32 Поскольку статический маршрут не передает части URL в качестве
33 параметров объекту запроса, то вы <emphasis>должны</emphasis>
34 передавать все параметры, необходимые для адресации запроса,
35 в качестве значений по умолчанию. Пропуск значений "controller" или
36 "action" приведет к неожиданным результатам,
37 и, скорее всего, сделает невозможой адресацию запроса.
41 Правило большого пальца: всегда предоставляйте следующие значения
46 <listitem><para>controller</para></listitem>
47 <listitem><para>action</para></listitem>
48 <listitem><para>module (если нет модуля, используемого по умолчанию)</para></listitem>
52 Вы можете также передавать параметр "useDefaultControllerAlways"
53 фронт-контроллеру в процессе загрузки:
56 <programlisting language="php"><![CDATA[
57 $front->setParam('useDefaultControllerAlways', true);
61 Однако это всего лишь обходной прием, всегда лучше явным
62 образом указывать для маршрута значения по умолчанию.