Yaf_Route_Regex::__construct
(Yaf >=1.0.0)
Yaf_Route_Regex::__construct — Contructeur Yaf_Route_Regex
Description
$match
, array $route
[, array $map
[, array $verify
[, string $reverse
]]] )
Liste de paramètres
-
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
Valeurs de retour
Exemples
Exemple #1 Exemple avec Yaf_Route_Regex()
<?php
/**
* Ajoute une route Regex à la pile de routes Yaf_Router
*/
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
/**
* Utilise le résultat des correspondances comme nom MVC
*/
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
// comme nom du contrôleur
),
array(
1 => "name", // maintenant, vous pouvez appeler $request->getParam("name")
2 => "id", // pour récupérer la première capture du masque de correspondance
)
)
);
?>
Exemple #3 Exemple avec Yaf_Route_Regex()
<?php
/**
* Ajoute une route Regex à la pile de routes Yaf_Router en appelant addconfig
*/
$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));
?>
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_Rewrite
- Yaf_Route_Map