File: Zend_Controller-Router-Route-Hostname.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 (58 lines) | stat: -rw-r--r-- 2,550 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
<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 17592 -->
<!-- Reviewed: no -->
<sect3 id="zend.controller.router.routes.hostname">
    <title>Zend_Controller_Router_Route_Hostname</title>

    <para>
        <classname>Zend_Controller_Router_Route_Hostname</classname> ist die Hostname Route des
        Frameworks. Sie arbeitet ähnlich wie die Standardrouten, aber Sie arbeitet an und mit dem
        Hostnamen der aufgerufenen <acronym>URL</acronym> statt mit dem Pfad.
    </para>

    <para>
        Verwenden wir also ein Beispiel von der Standardroute und schauen wir uns an wie Sie auf
        einem Hostnamen basierenden Weg aussehen würde. Statt das der Benutzer über einen Pfad
        aufgerufen wird, wollen wir das der Benutzer
        <filename>http://martel.users.example.com</filename> aufrufen kann, um die Informationen
        über den Benutzer "martel" zu sehen:
    </para>

    <programlisting language="php"><![CDATA[
$hostnameRoute = new Zend_Controller_Router_Route_Hostname(
    ':username.users.example.com',
    array(
        'controller' => 'profile',
        'action'     => 'userinfo'
    )
);

$plainPathRoute = new Zend_Controller_Router_Route_Static('');

$router->addRoute('user', $hostnameRoute->chain($plainPathRoute);
]]></programlisting>

    <para>
        Der erste Parameter in Konstruktor von
        <classname>Zend_Controller_Router_Route_Hostname</classname> ist eine Routerdefinition die
        zu einem Hostnamen passt. Routerdefinitionen bestehen aus statischen und dynamischen Teilen
        die durch ein Punkt ('.') Zeichen getrennt sind. Dynamische Teile, genannt Variablen, werden
        durch einen, dem Variablennamen vorangestellten Doppelpunkt, gekennzeichnet:
        <command>:username</command>. Statische Teile sind nur einfacher Text:
        <command>user</command>.
    </para>

    <para>
        Hostnamerouten können verwendet werden wie sie sind, sollten es aber nie. Der Grund dahinter
        ist, das Hostnamerouten alleine jedem Pfad entsprechen würden. Was man also tun muß, ist
        eine Pfadroute an die Hostnameroute zu ketten. Das wird, wie im Beispiel, getan indem
        <command>$hostnameRoute->chain($pathRoute);</command> aufgerufen wird. Indem das getan
        wird, wird <varname>$hostnameRoute</varname> nicht geändert, aber eine neue Route
        (<classname>Zend_Controller_Router_Route_Chain</classname>), welche dann dem Router
        übergeben werden kann, wird zurückgegeben.
    </para>

</sect3>
<!--
vim:se ts=4 sw=4 et:
-->