# Yaf_Route_Regex::__construct

(Yaf >=1.0.0)

Yaf_Route_Regex::__construct — Contructeur Yaf_Route_Regex

### Description

public Yaf_Route_Regex::__construct(
string `$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 et la capture du nom (depuis 2.3.0)

`<?php
/**
* Use match result as MVC name
*/
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,
// qui est le groupe de capture 'name' dans le résultat des correspondances comme nom du contrôleur
),
array(
2 => "id", // pour récupérer la première capture dans le masque de recherche.
)
)
);
?>`

Exemple #4 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