(Yaf >=1.0.0)
Yaf_Route_Regex::__construct — Construtor de Yaf_Route_Regex
$match
,$route
,$map
= ?,$verify
= ?,$reverse
= ?
match
Uma expressão regular completa. Será usada para corresponder a uma URI de requisição. Se
não corresponder, Yaf_Route_Regex retornará
false
.
route
Quando a expressão corresponder ao URI, Yaf_Route_Regex usará este parâmetro para decidir que valores m/c/a serão usados na rota.
Qualquer dos valores de m/c/a neste array é opcional. Se não for especificado um valor, será usado o roteamento padrão.
map
Um array para atribuir nomes aos grupos de captura no resultado da correspondência.
verify
reverse
Uma string usada para montar o URL, consulte Yaf_Route_Regex::assemble().
Nota:
Este parâmetro está disponível a partir do Yaf 2.3.0.
Exemplo #1 Exemplo de Yaf_Route_Regex
<?php
/**
* Adiciona uma rota "regex" à pilha de rotas Yaf_Router
*/
Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
new Yaf_Route_Regex(
"#^/product/([^/]+)/([^/])+#", // corresponde a um URI iniciando com "/product"
array(
'controller' => "product", // rota para o controlador de "/product",
),
array(
1 => "name", // agora é possível chamar $request->getParam("name")
2 => "id", // para obter o primeiro grupo de captura na expressão correspondida.
)
)
);
?>
Exemplo #2 Exemplo de Yaf_Route_Regex (a partir do Yaf 2.3.0)
<?php
/**
* Usa o resultado da correspondência como nome MVC
*/
Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
new Yaf_Route_Regex(
"#^/product/([^/]+)/([^/])+#i", // corresponde ao URI iniciando com "/product"
array(
'controller' => ":name", // rota para :name, que é $1 no resultado da correspondência como o nome do controlador
),
array(
1 => "name", // agora é possível chamar $request->getParam("name")
2 => "id", // para obter o primeiro grupo de captura na expressão correspondida.
)
)
);
?>
Exemplo #3 Exemplo de Yaf_Route_Regex e grupo de captura nomeado (a partir do Yaf 2.3.0)
<?php
/**
* Usa o resultado da correspondência como nome MVC
*/
Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
new Yaf_Route_Regex(
"#^/product/(?<name>[^/]+)/([^/])+#i", // corresponde ao URI iniciando com "/product"
array(
'controller' => ":name", // rota para :name,
// que é o grupo de captura nomeado 'name' no resultado da correspondência como o nome do controlador
),
array(
2 => "id",
)
)
);
?>
Exemplo #4 Exemplo de Yaf_Route_Regex
<?php
/**
* Adiciona uma rota "regex" à pilha de rotas Yaf_Router chamando addconfig
*/
$config = array(
"name" => array(
"type" => "regex", // rota Yaf_Route_Regex
"match" => "#(.*)#", // corresponde a um URI de requisição genérico
"route" => array(
'controller' => "product", // rota para o controlador de "product",
'action' => "dummy", // rota para uma ação "dummy"
),
"map" => array(
1 => "uri", // agora pode-se chamar $request->getParam("uri")
),
),
);
Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
new Yaf_Config_Simple($config));
?>