微擎筆記2
微擎路由:
入口腳本程序獲取到到URL中相關(guān)的GET參數(shù),解析后進(jìn)行權(quán)限判斷宴杀,然后調(diào)用相應(yīng)的控制器處理這個(gè)請求癣朗。該過程就被稱為URL路由(routing)。
路由分類
地址URL地址路由
當(dāng)傳入的URL請求中包含一個(gè)名為 c旺罢、a旷余、do(可選) 的 GET 參數(shù),它即被視為一個(gè)路由扁达,例如:
http://we7.cc/web/index.php?c=platform&a=menu&
則會(huì)路由至 /web/source/platform/menu.ctrl.php 文件中
http://we7.cc/app/index.php?c=mc&a=home&
則會(huì)路由至 /app/source/mc/home.ctrl.php 文件中
模塊URL地址路由
當(dāng)傳入的 c 值為 “site”, a 值為 “entry”時(shí)則是一個(gè)模塊路由荣暮,例如:
http://we7.cc/web/index.php?c=site&a=entry&do=themeset&m=we7_demo
則會(huì)路由至 /addons/we7_demo/site.php 文件中的 doWebThemeset() 方法。
http://we7.cc/app/index.php?i=1&j=2&c=entry&do=list&m=we7_demo
則會(huì)路由至 /addons/we7_demo/site.php 文件中的 doMobileList() 方法罩驻。
約定及使用
GET 參數(shù)中的 c穗酥、a、do為微擎系統(tǒng)的路由參數(shù)惠遏,應(yīng)當(dāng)避免與系統(tǒng)參數(shù)沖突砾跃,在程序中可以使用 $controller、$action节吮、$do來獲取對應(yīng)的路由三個(gè)參數(shù)
創(chuàng)建一個(gè)URL
微擎提供一個(gè)創(chuàng)建URL的函數(shù) url(?params = array(), $noredirect = false) , 路由的表達(dá)式以斜杠“/”的方式組織抽高,每個(gè)以斜杠分隔的片段都是指向某一控制器(controller)、操作(action)或是行為(do)透绩。第二個(gè)參數(shù)則是以數(shù)組的形式表示URL中的QueryString翘骂。例如:
//生成此地址
//http://we7.cc/web/index.php?c=site&a=entry&do=themeset&m=we7_demo
echo url('site/entry/themeset', array('m' => 'we7_demo'));
?
//http://we7.cc/app/index.php?c=mc&a=home&
echo url('mc/home');