File: Zend_Controller-Router-Route-Static.xml

package info (click to toggle)
zendframework 1.12.9%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 133,584 kB
  • sloc: xml: 1,311,829; php: 570,173; sh: 170; makefile: 125; sql: 121
file content (66 lines) | stat: -rw-r--r-- 2,559 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?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:
-->