| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 15103 -->
- <!-- 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 URL 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 <code>http://martel.users.example.com</code> aufrufen kann, um die
- Informationen über den Benutzer "martel" zu sehen:
- </para>
- <programlisting role="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:
- <code>:username</code>. Statische Teile sind nur einfacher Text: <code>user</code>.
- </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
- <code>$hostnameRoute->chain($pathRoute);</code> aufgerufen wird. Indem das getan wird, wird
- <code>$hostnameRoute</code> 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:
- -->
|