thinkphp框架路由的定義與使用
thinkphp框架具體強(qiáng)大的路由定義功能,基本上能滿足網(wǎng)站路由的所有要求,包括規(guī)則路由、正則路由、靜態(tài)路由,還對路由的閉包支持。
下面介紹ThinkPHP框架路由的定義與使用。
路由的定義
啟用路由。ThinkPHP路由配置生效需要滿足三個(gè)條件:
立即學(xué)習(xí)“PHP免費(fèi)學(xué)習(xí)筆記(深入)”;
(1)在配置文件中開啟路由功能,如下圖1;
(2)URL支持PATH_INFO模式或者兼容URL模式;
(3)配置文件中使用URL_ROUTE_RULES參數(shù)進(jìn)行配置,如下圖2。
路由定義格式。定義的格式有兩種:
(1) ‘路由表達(dá)式’=>’路由地址和傳入?yún)?shù);
(2)Array(‘路由表達(dá)式’,’路由地址’,’傳入?yún)?shù)’)。
路由參數(shù)配置。這些參數(shù)的作用是限制定義的路由規(guī)則的生效條件,主要有三種作用,分別是限制URL后綴、限制請求類型、自定義檢測。
路由的使用
規(guī)則路由。規(guī)則路由表達(dá)式包含靜態(tài)地址和動(dòng)態(tài)地址,或者兩種地址的結(jié)合,如下圖。
注釋:每個(gè)參數(shù)中以“:”開頭的參數(shù)都表示動(dòng)態(tài)參數(shù)。例如:id表示該處匹配到的參數(shù)可以使用$_GET[‘id’]方式獲得,:year、 :month 、:day 則分別對應(yīng)$_GET[‘year’]、 $_GET[‘month’] 和 $_GET[‘day’]。
正則路由,必須以“/”開頭,表達(dá)式不但支持正則的定義,而且還支持函數(shù)過濾處理。
靜態(tài)路由,表達(dá)式中路由的定義不包含動(dòng)態(tài)參數(shù),執(zhí)行效率高,但作用有限。靜態(tài)路由的格式為:[控制器/操作?]參數(shù)1=值1&參數(shù)2=值2。
注意:為了不影響動(dòng)態(tài)路由的遍歷效率,靜態(tài)路由采用URL_MAP_RULES定義和動(dòng)態(tài)路由區(qū)分開來。
使用閉包的方式定義路由。這種方式不需要執(zhí)行控制器的操作方法,如下圖。
本文來自ThinkPHP框架技術(shù)文章欄目:http://www.php.cn/phpkj/thinkphp/