函数名:Yaf_Route_Regex::__construct()
适用版本:Yaf 2.1.0 及以上版本
用法:Yaf_Route_Regex::__construct(string $match, array $route, array $map = array(), array $verify = array())
参数:
- $match: 匹配的正则表达式,用于匹配路由URI
- $route: 路由参数,用于指定要执行的控制器和动作
- $map: 路由参数映射,用于将正则表达式的匹配结果映射到路由参数中
- $verify: 路由参数验证,用于验证路由参数的格式和值
示例:
$route = new Yaf_Route_Regex(
'#^/user/([0-9]+)/([a-z]+)$#', // 匹配/user/{数字}/{小写字母}的URI
array(
'controller' => 'user', // 控制器
'action' => 'profile' // 动作
),
array(
1 => 'id', // 将第一个匹配到的数字映射到路由参数id
2 => 'name' // 将第二个匹配到的小写字母映射到路由参数name
),
array(
'id' => '/^\d+$/', // 验证id参数为数字
'name' => '/^[a-z]+$/' // 验证name参数为小写字母
)
);
在上面的示例中,我们创建了一个正则路由,用于匹配形如/user/{数字}/{小写字母}
的URI。当匹配成功后,Yaf框架会执行user
控制器的profile
动作,并将匹配到的数字赋值给路由参数id
,匹配到的小写字母赋值给路由参数name
。同时,我们还对路由参数进行了验证,确保id
只能是数字,name
只能是小写字母。