(Yaf >=1.0.0)
Yaf_Route_Regex::__construct — Contructeur Yaf_Route_Regex
match
Un masque de Regex complet à utiliser pour y faire correspondre une requête URI ; si aucune correspondance n'est trouvée, Yaf_Route_Regex retournera false
.
route
Lorsque le masque trouve une correspondance dans la requête URI, Yaf_Route_Regex utilisera ce paramètre pour décider quel m/c/a doit être routé.
Les éléments du tableau m/c/a sont optionnels ; si vous n'assignez pas de valeurs spécifiques à ces éléments, ils seront routés vers la route par défaut.
map
Un tableau permettant d'assigner les noms aux éléments trouvés via le masque.
verify
reverse
une chaîne de caractères, utilisé pour assembler l'url. Voir la méthode Yaf_Route_Regex::assemble().
Note:
Ce paramètre a été introduite en version 2.3.0
Exemple #1 Exemple avec Yaf_Route_Regex()
<?php
Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
new Yaf_Route_Regex(
"#^/product/([^/]+)/([^/])+#", //correspond à la requête URI "/product"
array(
'controller' => "product", //route vers le controlleur produit,
),
array(
1 => "name", // maintenant, vous pouvez appeler $request->getParam("name")
2 => "id", // pour récupérer la première capture du masque.
)
)
);
?>
Exemple #2 Exemple avec Yaf_Route_Regex (depuis la version 2.3.0)()
<?php
Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
new Yaf_Route_Regex(
"#^/product/([^/]+)/([^/])+#i", //trouve l'URI demandée après "/product"
array(
'controller' => ":name", // route vers :name, qui correspond à $1 dans le résultat de la correspondance
Exemple #3 Exemple avec Yaf_Route_Regex() et la capture du nom (depuis 2.3.0)
<?php
Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
new Yaf_Route_Regex(
"#^/product/(?<name>[^/]+)/([^/])+#i", //trouve le dernier "/product" de l'URI demandé
array(
'controller' => ":name", // route vers :name,
Exemple #4 Exemple avec Yaf_Route_Regex()
<?php
$config = array(
"name" => array(
"type" => "regex", //la route Yaf_Route_Regex
"match" => "#(.*)#", //correspondance arbitraire à la requête URI
"route" => array(
'controller' => "product", //route vers le controlleur produit,
'action' => "dummy", //route pour l'action dummy
),
"map" => array(
1 => "uri", // maintenant, vous pouvez appeler $request->getParam("uri")
),
),
);
Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
new Yaf_Config_Simple($config));
?>