1 <?xml version="1.0" encoding="utf-8"?>
2 <!-- EN-Revision: 17592 -->
4 <sect3 id="zend.controller.router.routes.hostname">
5 <title>Zend_Controller_Router_Route_Hostname</title>
8 <classname>Zend_Controller_Router_Route_Hostname</classname> est la route par nom
9 d'hôte du framework. Elle fonctionne de la même manière que la route standard, mais elle
10 utilise le nom d'hôte de l'URL appelé au lieu du chemin.
14 Utilisons l'exemple d'une route standard et regardons ce que cela donnerais en
15 utilisant le nom d'hôte. Au lieu d'appeler l'utilisateur par le chemin, nous voulons être
16 capable d'appeler <code>http://toto.users.example.com</code> pour voir les informations
17 concernant l'utilisateur "toto" 
20 <programlisting language="php"><![CDATA[
21 $hostnameRoute = new Zend_Controller_Router_Route_Hostname(
22 ':username.users.example.com',
24 'controller' => 'profile',
25 'action' => 'userinfo'
29 $plainPathRoute = new Zend_Controller_Router_Route_Static('');
31 $router->addRoute('user', $hostnameRoute->chain($plainPathRoute);
35 Le premier paramètre dans le constructeur
36 <classname>Zend_Controller_Router_Route_Hostname</classname> est la définition d'une route
37 qui correspondra à un nom d'hôte. Les définitions de route consistent en des parties
38 statiques et des parties dynamiques séparées par le caractère point ("<code>.</code>"). Les
39 parties dynamiques, appelées variables, sont marquées en précédant le nom de variable par
40 le caractère deux-points ("<code>:</code>") : <code>:username</code>. Les parties
41 statiques sont de simples textes : <code>user</code>.
45 Les routes par nom d'hôtes peuvent, mais ne devraient pas être utilisées comme ceci.
46 La raison à cela est que qu'une route par nom d'hôte seule ne correspondra à aucun chemin.
47 Donc vous devez donc chaîner le chemin d'une route à une route par nom d'hôte. Ceci est
48 réalisé comme dans l'exemple ci-dessous en appelant
49 <code>$hostnameRoute->chain($pathRoute);</code>. En faisant ceci,
50 <varname>$hostnameRoute</varname> n'est pas modifié, mais une nouvelle route
51 (<classname>Zend_Controller_Router_Route_Chain</classname>) est retournée, qui peut ainsi
52 être fournie au routeur.