Yaf_Route_Regex::__construct

(Yaf >=1.0.0)

Yaf_Route_Regex::__constructYaf_Route_Regex 构造函数

描述

public Yaf_Route_Regex::__construct(
    string $match,
    array $route,
    array $map = ?,
    array $verify = ?,
    string $reverse = ?
)

参数

match

一个完整的正则表达式模式,将用于匹配请求 URI,如果未匹配,则 Yaf_Route_Regex 将返回 false

route

当匹配模式匹配请求 URI 时,Yaf_Route_Regex 将使用此来决定路由到哪个 m/c/a。

此数组中的 m/c/a 都是可选的,如果未分配特定值,则将路由到默认值。

map

一个数组,用于将名称分配给匹配结果中的捕获。

verify

reverse

一个字符串,用于组装 URL,请参见 Yaf_Route_Regex::assemble()

注意:

此参数在 2.3.0 中引入

返回值

示例

示例 #1 Yaf_Route_Regex()示例

<?php
/**
* 将正则表达式路由添加到 Yaf_Router 路由栈
*/
Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
new
Yaf_Route_Regex(
"#^/product/([^/]+)/([^/])+#", //匹配请求 URI 开头的 "/product"
array(
'controller' => "product", //路由到 product 控制器
),
array(
1 => "name", //现在可以调用 $request->getParam("name")
2 => "id", //获取匹配模式中的第一个捕获。
)
)
);
?>

示例 #2 Yaf_Route_Regex(从 2.3.0 开始)()示例

<?php
/**
* 使用匹配结果作为 MVC 名称
*/
Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
new
Yaf_Route_Regex(
"#^/product/([^/]+)/([^/])+#i", //匹配请求 URI 开头的 "/product"
array(
'controller' => ":name", //路由到 :name,即匹配结果中的 $1 作为控制器名称
),
array(
1 => "name", //现在可以调用 $request->getParam("name")
2 => "id", //获取匹配模式中的第一个捕获。
)
)
);
?>

示例 #3 Yaf_Route_Regex 和命名捕获组(从 2.3.0 开始)()示例

<?php
/**
* 使用匹配结果作为 MVC 名称
*/
Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
new
Yaf_Route_Regex(
"#^/product/(?<name>[^/]+)/([^/])+#i", //匹配请求 URI 开头的 "/product"
array(
'controller' => ":name", //路由到 :name,
//即匹配结果中的命名捕获组 'name' 作为控制器名称
),
array(
2 => "id", //获取匹配模式中的第一个捕获。
)
)
);
?>

示例 #4 Yaf_Route_Regex()示例

<?php
/**
* 通过调用 addconfig 将正则表达式路由添加到 Yaf_Router 路由栈
*/
$config = array(
"name" => array(
"type" => "regex", //Yaf_Route_Regex 路由
"match" => "#(.*)#", //匹配任意请求 URI
"route" => array(
'controller' => "product", //路由到 product 控制器
'action' => "dummy", //路由到 dummy 操作
),
"map" => array(
1 => "uri", //现在可以调用 $request->getParam("uri")
),
),
);
Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
new
Yaf_Config_Simple($config));
?>

参见

添加备注

用户贡献的备注

此页面没有用户贡献的备注。
To Top