(Yaf >=1.0.0)
Yaf_Route_Regex::__construct — Constructeur Yaf_Route_Regex
$match,$route,$map = null,$verify = null,$reverse = nullConstruit une route Yaf_Route_Regex, qui route une URI de requête correspondant à une expression rationnelle vers un module, un contrôleur et une action.
match
Un masque d'expression rationnelle complet, utilisé pour correspondre à
l'URI de la requête. Lorsqu'il ne correspond pas,
Yaf_Route_Regex::route() retourne false et le
routeur passe à la route suivante.
routeLorsque le masque correspond à l'URI de la requête, ce tableau détermine le module, le contrôleur et l'action vers lesquels router.
Chacune des trois entrées est optionnelle ; lorsque l'une n'est pas
fournie, la valeur par défaut est utilisée. Une entrée dont la valeur
commence par : est résolue à partir des paramètres
produits par map.
mapUn tableau associant les indices des groupes de capture à des noms de paramètres. Seules les captures listées ici deviennent des paramètres de la requête ; une capture numérique qui n'est pas listée est ignorée.
Les groupes de capture nommés sont toujours ajoutés sous leur propre nom et n'ont pas besoin d'être listés.
verifyAccepté et stocké sur la route, mais inutilisé : l'implémentation actuelle ne le consulte jamais lors du routage.
reverseUne chaîne de caractères, utilisée pour assembler une URL, voir Yaf_Route_Regex::assemble().
Note:
Ce paramètre a été introduit en 2.3.0
Aucune valeur n'est retournée.
Exemple #1 Yaf_Route_Regex via Yaf_Router::addRoute()
<?php
/**
* Ajoute une route regex à la pile de routes de Yaf_Router
*/
Yaf_Dispatcher::getInstance()->getRouter()->addRoute(
"name",
new Yaf_Route_Regex(
"#^/product/([^/]+)/([^/]+)#", // correspond aux URI commençant par "/product"
array(
'controller' => "product", // route vers le contrôleur product
),
array(
1 => "name", // $request->getParam("name") contient la première capture
2 => "id", // et $request->getParam("id") la seconde
)
)
);
?>Exemple #2 Yaf_Route_Regex utilisant une capture comme nom de contrôleur
<?php
/**
* Utilise une capture comme nom de contrôleur
*/
Yaf_Dispatcher::getInstance()->getRouter()->addRoute(
"name",
new Yaf_Route_Regex(
"#^/product/([^/]+)/([^/]+)#i", // correspond aux URI commençant par "/product"
array(
'controller' => ":name", // la capture "name" (voir map) devient le contrôleur
),
array(
1 => "name", // $request->getParam("name") contient la première capture
2 => "id", // et $request->getParam("id") la seconde
)
)
);
?>Exemple #3 Yaf_Route_Regex utilisant un groupe de capture nommé
<?php
/**
* Utilise un groupe de capture nommé comme nom de contrôleur
*/
Yaf_Dispatcher::getInstance()->getRouter()->addRoute(
"name",
new Yaf_Route_Regex(
"#^/product/(?<name>[^/]+)/([^/]+)#i", // correspond aux URI commençant par "/product"
array(
'controller' => ":name", // la capture "name" devient le contrôleur
),
array(
2 => "id", // le groupe 1 est nommé, seul le groupe 2 nécessite une entrée dans map
)
)
);
?>Exemple #4 Yaf_Route_Regex via Yaf_Router::addConfig()
<?php
/**
* Ajoute une route regex à la pile de routes de Yaf_Router via un tableau de configuration
*/
$config = array(
"name" => array(
"type" => "regex", // une route Yaf_Route_Regex
"match" => "#(.*)#", // correspond à n'importe quelle URI de requête
"route" => array(
'controller' => "product", // route vers le contrôleur product
'action' => "dummy", // et vers l'action dummy
),
"map" => array(
1 => "uri", // $request->getParam("uri") contient l'URI correspondante
),
),
);
Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
new Yaf_Config_Simple($config)
);
?>