Yaf_Route_Rewrite::__construct
(Yaf >=1.0.0)
Yaf_Route_Rewrite::__construct — Constructeur Yaf_Route_Rewrite
Description
$match
, array $route
[, array $verify
] )
Liste de paramètres
-
match
-
Un masque à utiliser sur une requête URI. Si aucune correspondance n'y est trouvée, Yaf_Route_Rewrite retournera
FALSE
.Vous pouvez utiliser le style :name pour nommer le segment recherché, et utiliser le caractère * pour récupérer le reste du segment de l'URL.
-
route
-
Lorsque le masque trouve une correspondance sur la requête URI, Yaf_Route_Rewrite utilisera ce paramètre pour savoir quel module/controller/action doit être routé.
Les éléments du tableau module/controller/action sont optionnels, si vous ne les assignez pas en une valeur spécifique, ils seront routés vers la cible par défaut.
-
verify
-
Exemples
Exemple #1 Exemple avec Yaf_Route_Rewrite()
<?php
/**
* Ajoute une route de réécriture à la pile de routes de Yaf_Router
*/
Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
new Yaf_Route_rewrite(
"/product/:name/:id/*", //correspond à la requête URI "/product"
array(
'controller' => "product", //route vers le controlleur produit,
),
)
);
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
/* Pour http://yourdomain.com/product/foo/22/foo/bar * la route résultante aura les valeurs suivantes : */ array( "controller" => "product", "module" => "index", //(default) "action" => "index", //(default) ) /** * et les paramètres de la requête : */ array( "name" => "foo", "id" => 22, "foo" => bar )
Exemple #2 Exemple avec Yaf_Route_Rewrite()
<?php
/**
* Ajoute une route de réécriture à la pile de route Yaf_Router
* en appelant addconfig
*/
$config = array(
"name" => array(
"type" => "rewrite", //route Yaf_Route_Rewrite
"match" => "/user-list/:id", //correspond uniquement à /user/list/?/
"route" => array(
'controller' => "user", //route vers le contrôleur utilisateur
'action' => "list", //route vers la liste des actions
),
),
);
Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
new Yaf_Config_Simple($config));
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
/* Pour http://yourdomain.com/user-list/22 * la route résultera en les valeurs suivantes : */ array( "controller" => "user", "action" => "list", "module" => "index", //(default) ) /** * et les paramètres de la requête : */ array( "id" => 22, )
Exemple #3 Exemple avec Yaf_Route_Rewrite (depuis 2.3.0)()
<?php
/**
* Ajout d'une route de ré-écriture utilisée pour chercher un résultat du type m/c/a
*/
$config = array(
"name" => array(
"type" => "rewrite",
"match" => "/user-list/:a/:id", //correspond uniquement à /user-list/*
"route" => array(
'controller' => "user", //route vers le contrôleur user,
'action' => ":a", //route vers l'action :a
),
),
);
Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
new Yaf_Config_Simple($config));
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
/* pour http://yourdomain.com/user-list/list/22 * la route va correspondre aux valeurs suivantes : */ array( "controller" => "user", "action" => "list", "module" => "index", //(par défaut) ) /** * et les paramètres demandés : */ array( "id" => 22, )
Voir aussi
- Yaf_Router::addRoute() - Ajoute une nouvelle route dans un routeur
- Yaf_Router::addConfig() - Ajoute une route définie dans la configuration d'un routeur
- Yaf_Route_Static
- Yaf_Route_Supervar
- Yaf_Route_Simple
- Yaf_Route_Regex
- Yaf_Route_Map
Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-yaf-route-rewrite.construct.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.