<?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:
-->
