| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect3 id="zend.controller.router.routes.static">
- <title>Zend_Controller_Router_Route_Static</title>
- <para>
- Die oben angeführten Beispiele verwenden alle dynamische Routen -- Routen die einem Pattern
- entsprechen. Trotzdem wird manchmal eine spezielle Route in Stein gegossen, und das Starten
- der Regular Expression Maschine wäre ein Overkill. Die Lösung zu dieser Situation ist die
- Verwendung von statischen Routen:
- </para>
- <programlisting language="php"><![CDATA[
- $route = new Zend_Controller_Router_Route_Static(
- 'login',
- array('controller' => 'auth', 'action' => 'login')
- );
- $router->addRoute('login', $route);
- ]]></programlisting>
- <para>
- Die obige Route passt zu einer <acronym>URL</acronym> von
- <filename>http://domain.com/login</filename>, und leitet weiter zu
- <methodname>AuthController::loginAction()</methodname>.
- </para>
- <note id="zend.controller.router.routes.static.warning">
- <title>Warnung: Statische Routen müssen vernüftige Standards enthalten</title>
- <para>
- Da eine statische Route keinen Teil der <acronym>URL</acronym> an das Requestobjekt als
- Parameter übergibt, <emphasis>muss</emphasis> man alle Parameter die für das Bearbeiten
- eines Requests notwendig sind als Standards an die Route übergeben. Das unterdrücken der
- Standardwerte von "controller" oder "action" kann zu unerwarteten Ergebnissen führen,
- und wird dazu führen das der Request nicht bearbeitet werden kann.
- </para>
- <para>
- Als Daumenregel sollte man immer jeden der folgenden Standardwerte anbieten:
- </para>
- <itemizedlist>
- <listitem><para>controller</para></listitem>
- <listitem><para>action</para></listitem>
- <listitem><para>module (if not default)</para></listitem>
- </itemizedlist>
- <para>
- Optional kann auch der "useDefaultControllerAlways" Parameter an den Frontcontroller
- während des Bootstrappings übergeben werden:
- </para>
- <programlisting language="php"><![CDATA[
- $front->setParam('useDefaultControllerAlways', true);
- ]]></programlisting>
- <para>
- Trotzdem ist das als Workaround anzusehen; es ist immer besser vernünftige Standards
- explizit zu definieren.
- </para>
- </note>
- </sect3>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|