Zend_Controller-Router-Route-Static.xml 2.8 KB

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