1 <?xml version="1.0" encoding="UTF-8"?>
3 <!-- EN-Revision: 17592 -->
4 <sect3 id="zend.controller.router.routes.static">
5 <title>Zend_Controller_Router_Route_Static</title>
8 これまでの例では、すべて動的なルートを使用していました。
9 つまり、特定のパターンにマッチするものについてのルートです。
10 しかし、時には特定のルートを固定してしまい、
11 わざわざ正規表現エンジンを動かしたくない場合もあるでしょう。
15 <programlisting language="php"><![CDATA[
16 $route = new Zend_Controller_Router_Route_Static(
18 array('controller' => 'auth', 'action' => 'login')
20 $router->addRoute('login', $route);
24 上のルートは <filename>http://domain.com/login</filename> という <acronym>URL</acronym>
25 にマッチし、<methodname>AuthController::loginAction()</methodname> にディスパッチされます。
28 <note id="zend.controller.router.routes.static.warning">
29 <title>警告: 静的なルートにはまともなデフォルトが必須</title>
32 静的なルートは、<acronym>URL</acronym> の一部をリクエストオブジェクトへのパラメータとして渡すことはありません。
33 したがって、リクエストのディスパッチに必要なパラメータは
34 すべてデフォルトでルートに渡すようにしておかなければなりません。
35 "controller" や "action" のデフォルト値を省略してしまうと予期せぬ結果を引き起こし、
36 リクエストがディスパッチ不能になってしまうでしょう。
40 一般に、以下のデフォルト値は常に渡すようにしておきましょう。
44 <listitem><para>controller</para></listitem>
45 <listitem><para>action</para></listitem>
46 <listitem><para>module (デフォルト以外の場合)</para></listitem>
50 オプションで、起動時に "useDefaultControllerAlways"
51 パラメータをフロントコントローラに渡すこともできます。
54 <programlisting language="php"><![CDATA[
55 $front->setParam('useDefaultControllerAlways', true);
60 デフォルトを明記しておくほうがおすすめです。