函數(shù)名稱(chēng):Yaf_Route_Rewrite::__construct()
適用版本:Yaf 2.3.0及以上版本
用法:Yaf_Route_Rewrite::__construct()函數(shù)用于創(chuàng)建一個(gè)Yaf_Route_Rewrite實(shí)例,并設(shè)置路由規(guī)則。
示例:
$route = new Yaf_Route_Rewrite(
'/product/:id',
array(
'controller' => 'product',
'action' => 'detail'
)
);
在上述示例中,我們創(chuàng)建了一個(gè)Yaf_Route_Rewrite實(shí)例,并設(shè)置了一個(gè)路由規(guī)則,該規(guī)則將URL中的"/product/:id"部分映射到控制器為"product"、動(dòng)作為"detail"的請(qǐng)求。
參數(shù)說(shuō)明:
- 第一個(gè)參數(shù)是路由規(guī)則的匹配模式,可以使用冒號(hào)(:)來(lái)定義參數(shù)。例如,"/product/:id"表示匹配以"/product/"開(kāi)頭的URL,并將:id作為參數(shù)傳遞給控制器。
- 第二個(gè)參數(shù)是一個(gè)關(guān)聯(lián)數(shù)組,用于指定控制器和動(dòng)作的名稱(chēng)。在示例中,我們將控制器名稱(chēng)設(shè)置為"product",動(dòng)作名稱(chēng)設(shè)置為"detail"。
注意事項(xiàng):
- Yaf_Route_Rewrite需要在Yaf路由器中注冊(cè)才能生效??梢酝ㄟ^(guò)調(diào)用Yaf_Router的addRoute()方法來(lái)實(shí)現(xiàn)。
$router = Yaf_Dispatcher::getInstance()->getRouter();
$router->addRoute('my_route', $route);
在這個(gè)示例中,我們獲取了Yaf_Dispatcher的單例,并通過(guò)調(diào)用getRouter()方法獲取了Yaf路由器的實(shí)例。然后,我們使用addRoute()方法將之前創(chuàng)建的路由實(shí)例添加到Y(jié)af路由器中。
這樣,當(dāng)請(qǐng)求URL匹配到"/product/:id"模式時(shí),Yaf將自動(dòng)調(diào)用名為"product"的控制器的"detail"動(dòng)作,并將:id作為參數(shù)傳遞給控制器。