函數(shù)名:Yaf_Route_Regex::__construct()
適用版本:Yaf 2.1.0 及以上版本
用法:Yaf_Route_Regex::__construct(string $match, array $route, array $map = array(), array $verify = array())
參數(shù):
- $match: 匹配的正則表達(dá)式,用于匹配路由URI
- $route: 路由參數(shù),用于指定要執(zhí)行的控制器和動(dòng)作
- $map: 路由參數(shù)映射,用于將正則表達(dá)式的匹配結(jié)果映射到路由參數(shù)中
- $verify: 路由參數(shù)驗(yàn)證,用于驗(yàn)證路由參數(shù)的格式和值
示例:
$route = new Yaf_Route_Regex(
'#^/user/([0-9]+)/([a-z]+)$#', // 匹配/user/{數(shù)字}/{小寫(xiě)字母}的URI
array(
'controller' => 'user', // 控制器
'action' => 'profile' // 動(dòng)作
),
array(
1 => 'id', // 將第一個(gè)匹配到的數(shù)字映射到路由參數(shù)id
2 => 'name' // 將第二個(gè)匹配到的小寫(xiě)字母映射到路由參數(shù)name
),
array(
'id' => '/^\d+$/', // 驗(yàn)證id參數(shù)為數(shù)字
'name' => '/^[a-z]+$/' // 驗(yàn)證name參數(shù)為小寫(xiě)字母
)
);
在上面的示例中,我們創(chuàng)建了一個(gè)正則路由,用于匹配形如/user/{數(shù)字}/{小寫(xiě)字母}
的URI。當(dāng)匹配成功后,Yaf框架會(huì)執(zhí)行user
控制器的profile
動(dòng)作,并將匹配到的數(shù)字賦值給路由參數(shù)id
,匹配到的小寫(xiě)字母賦值給路由參數(shù)name
。同時(shí),我們還對(duì)路由參數(shù)進(jìn)行了驗(yàn)證,確保id
只能是數(shù)字,name
只能是小寫(xiě)字母。