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
|
<?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>
Les exemples ci-dessus utilisent des routes dynamiques - routes qui contiennent des
motifs pour chercher des correspondances. Seulement, parfois, une route particulière est
marquée en dur, et mettre en marche le moteur d'expression régulière serait inutile. La
réponse à cette situation est l'utilisation de routes statiques :
</para>
<programlisting language="php"><![CDATA[
$route = new Zend_Controller_Router_Route_Static(
'login',
array('controller' => 'auth', 'action' => 'login')
);
$router->addRoute('login', $route);
]]></programlisting>
<para>
La route ci-dessus correspond à l'URL <filename>http://domain.com/login</filename>, et
distribue l'action <methodname>AuthController::loginAction()</methodname>.
</para>
<note id="zend.controller.router.routes.static.warning">
<title>
ATTENTION : Les routes statiques doivent contenir des valeurs par défaut
saines
</title>
<para>
Puisqu'une route statique ne fournit aucune partie de l'URL à l'objet de requête
en tant que paramètres, vous <emphasis>devez</emphasis> fournir par défaut pour la
route tous les paramètres nécessaires à la distribution de la requête. Oubliez les
valeurs par défaut de "controller" ou "action" entraînera des résultats non attendus,
et peut-être une requête non-distribuable.
</para>
<para>En général, fournissez toujours chacune des valeurs par défaut suivantes :</para>
<itemizedlist>
<listitem>
<para>controller</para>
</listitem>
<listitem>
<para>action</para>
</listitem>
<listitem>
<para>module (si différent de "default")</para>
</listitem>
</itemizedlist>
<para>
Optionnellement, vous pouvez activer le paramètre "useDefaultControllerAlways" du
contrôleur frontal lors de l'amorçage :
</para>
<programlisting language="php"><![CDATA[
$front->setParam('useDefaultControllerAlways', true);
]]></programlisting>
<para>
Cependant, ceci est considéré comme un contournement ; il vaut toujours mieux
définir explicitement des valeurs par défaut saines.
</para>
</note>
</sect3>
|