c、a、do 也就是 /web/index.php?c=account&a=display&do=display 代表的含義是什么?
* * * * *
只需記住c a do 4個字符就行了
### 解析路由(路由理解為文件路徑也行)
1.地址URL地址路由
當傳入的URL請求中包含一個名為 c、a、do(可選) 的 GET 參數,它即被視為一個路由,例如:
http://we7.cc/**web**/index.php?c=**platform**&a=**menu**&
則會路由至 /**web**/source/**platform**/**menu**.ctrl.php 文件中
http://we7.cc/**app**/index.php?c=**mc**&a=**home**&
則會路由至 /**app**/source/**mc**/**home**.ctrl.php 文件中
2.模塊URL地址路由
當傳入的 c 值為 “site”, a 值為 “entry”時則是一個模塊路由,例如:
http://we7.cc/web/index.php?c=site&a=entry&do=themeset&m=we7_demo
則會路由至 /addons/we7_demo/site.php 文件中的 doWebThemeset() 方法。
http://we7.cc/app/index.php?i=1&j=2&c=entry&do=list&m=ewei_shopping
則會路由至 /addons/we7_demo/site.php 文件中的 doMobileList() 方法。
### 創建一個URL
微擎提供一個創建URL的函數 url($segment, $params = array(), $noredirect = false) , 路由的表達式以斜杠“/”的方式組織,每個以斜杠分隔的片段都是指向某一控制器(controller)、操作(action)或是行為(do)。
第二個參數則是以數組的形式表示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');
模塊中二次封裝了系統的 url() 函數,使用時變的更加簡單,例如:
class We7_demoModuleSite extends WeModuleSite {
public function doMobileIndex() {
echo $this->createMobileUrl('home');
}
public function doMobileHome() {
//上面doMobileIndex()生成的鏈接會進入到這里
}
publci function doWebIndex() {
echo $this->createWebUrl('home');
}
public function doWebHome() {
//上面doWebIndex()生成的鏈接會進入到這里
}
}
~~~
### URL路由
入口腳本程序獲取到到URL中相關的GET參數,解析后進行權限判斷,然后調用相應的控制器處理這個請求。該過程就被稱為URL路由(routing)。
### 約定及使用
GET 參數中的 c、a、do為微擎系統的路由參數,應當避免與系統參數沖突,在程序中可以使用 $controller、$action、$do來獲取對應的路由三個參數