一、公众号模块方法
// 前台方法
doMobileXXX --> doMobileIndex
// 后台方法
doWebXXX --> doWebUsers
二、模块URL
- 前台(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
// 以上两种访问方式等价
- 后台(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路由
微擎系统的路由参数: c、a、do;
获取对应的路由三个参数:$controller、$action、$do
(一)地址URL地址路由
当传入的URL请求中包含一个名为 c、a、do(可选) 的 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的有效值有:aliapp、baiduapp、phoneapp、site、toutiaoapp、webapp、wxapp、xzapp),则进入对应的模块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()生成的链接会进入到这里
}
}