| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- <?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:
- -->
|