PHP Conference Japan 2024

Yaf_Router::addConfig

(Yaf >=1.0.0)

Yaf_Router::addConfig將設定檔定義的路由新增到路由器中

說明

public Yaf_Router::addConfig(Yaf_Config_Abstract $config): bool

將設定檔定義的路由新增到 Yaf_Router 的路由堆疊中

參數

$config

一個 Yaf_Config_Abstract 實例,其中應包含一個或多個有效的路由設定。

傳回值

成功返回 **`TRUE`**,失敗返回 **`FALSE`** 。

範例

;the order is very important, the prior one will be called first

;a rewrite route match request /product/*/*
routes.route_name.type="rewrite"
routes.route_name.match="/product/:name/:value"
routes.route_name.route.controller=product
routes.route_name.route.action=info

;a regex route match request /list/*/*
routes.route_name1.type="regex"
routes.route_name1.match="#^list/([^/]*)/([^/]*)#"
routes.route_name1.route.controller=Index
routes.route_name1.route.action=action
routes.route_name1.map.1=name
routes.route_name1.map.2=value

;a simple route match /**?c=controller&a=action&m=module
routes.route_name2.type="simple"
routes.route_name2.controller=c
routes.route_name2.module=m
routes.route_name2.action=a

;a simple router match /**?r=PATH_INFO
routes.route_name3.type="supervar"
routes.route_name3.varname=r

;a map route match any request to controller
routes.route_name4.type="map"
routes.route_name4.controllerPrefer=TRUE
routes.route_namer.delimiter="#!"

範例 #2 Yaf_Dispatcher::autoConfig() 範例

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract{
public function
_initConfig() {
$config = Yaf_Application::app()->getConfig();
Yaf_Registry::set("config", $config);
}

public function
_initRoute(Yaf_Dispatcher $dispatcher) {
$router = $dispatcher->getRouter();
/**
* 我們可以在 application.ini 中加入一些預先定義的路由
*/
$router->addConfig(Yaf_Registry::get("config")->routes);
}
?>
新增註釋

使用者貢獻的註釋 1 則註釋

arthurzwl at gmail dot com
7 年前
正則表達式路由應該像這樣。
您需要在 "list" 之前加上 "/"
routes.route_name1.match="#^/list/([^/]*)/([^/]*)#"
To Top