【微擎】URL路由及创建

一、公众号模块方法

// 前台方法
doMobileXXX --> doMobileIndex

// 后台方法
doWebXXX --> doWebUsers

二、模块URL

  1. 前台(app端)
// 默认
http://www.yourwebsite.com/app/index.php?i=2&c=entry&eid=50
// 自定义
http://www.yourwebsite.com/app/index.php?i=2&c=entry&do=index&m=module_name
// 以上两种访问方式等价
  1. 后台(web端)
// 默认
http://www.yourwebsite.com/web/index.php?c=site&a=entry&eid=51
// 自定义
http://www.yourwebsite.com/web/index.php?c=site&a=entry&do=user&m=module_name
// 以上两种访问方式等价

上面URL中出现的eid在数据表ims_modules_bindings中的字段eid中可获得,这些数据会在安装微擎模块的时候自动插入到该表当中。

三、URL路由

微擎系统的路由参数: cado

获取对应的路由三个参数:$controller$action$do

(一)地址URL地址路由

当传入的URL请求中包含一个名为 cado(可选) 的 GET参数,它即被视为一个路由,例如:

1. http://www.yourwebsite.com/web/index.php?c=platform&a=menu&

上面url会路由至 /web/source/platform/menu.ctrl.php 文件中

2. http://www.yourwebsite.com/app/index.php?c=mc&a=home&

上面url会路由至 /app/source/mc/home.ctrl.php 文件中

(二)模块URL地址路由

1、web端

当传入的 c 值为 “site”, a 值为 “entry”时则是一个模块路由,例如:

http://www.yourwebsite.com/web/index.php?c=site&a=entry&do=user&m=module_name

上面url会路由至 /addons/module_name/site.php 文件中的 doWebUser() 方法。

2、app端
  • 当传入的c 值为 “entry”时则是一个模块路由;

  • 如果a值为空,默认进入模块的site.php

  • 如果a值不为空(a的有效值有:aliappbaiduappphoneappsitetoutiaoappwebappwxappxzapp),则进入对应的模块php文件,例如:

1. http://www.yourwebsite.com/app/index.php?i=2&c=entry&do=index&m=module_name

上面url会路由至 /addons/module_name/site.php 文件中的 doMobileIndex() 方法

2. http://www.yourwebsite.com/app/index.php?i=2&c=entry&a=wxapp&do=list&m=module_name

上面url会路由至 /addons/module_name/wxapp.php 文件中的 doPageList() 方法

四、创建前后台路由方法

1、url() - 创建一个URL
url($segment, $params = array(), $noredirect = false)

路由的表达式以斜杠“/”的方式组织,每个以斜杠分隔的片段都是指向某一控制器(controller)、操作(action)或是行为(do)。
第二个参数则是以数组的形式表示URL中的QueryString。例如:

echo url('site/entry/user', array('m' => 'module_name'));
// http://www.yourwebsite.com/web/index.php?c=site&a=entry&do=user&m=module_name

echo url('mc/index');
// http://www.yourwebsite.com/app/index.php?c=mc&a=index&
2、$this->createMobileUrl() - 生成app端的url
$this->createMobileUrl(string $string, $params = array());
class Module_nameModuleSite extends WeModuleSite {
    public function doMobileIndex() {
        echo $this->createMobileUrl('home');
    }
    public function doMobileHome() {
        //上面doMobileIndex()生成的链接会进入到这里
    }
}
3、$this->createWebUrl() - 生成web端url
$this->createWebUrl(string $string, $params = array());
class Module_nameModuleSite extends WeModuleSite {
    public function doWebIndex() {
        echo $this->createWebUrl('home');
    }
    public function doWebHome() {
        //上面doWebIndex()生成的链接会进入到这里
    }
}

你可能感兴趣的:(【微擎】URL路由及创建)