教程05-微擎开发URL地址路由规则

1. URL路由概况

入口脚本程序获取到URL中相关的GET参数,解析后进行权限判断,然后调用相应的控制器处理这个请求。该过程就被称为URL路由(routing)。

约定及使用GET 参数中的 cado为微擎系统的路由参数,应当避免与系统参数冲突,在程序中可以使用 $controller$action$do来获取对应的路由三个参数。

地址URL地址路由

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

http://w7.cc/web/index.php?c=platform&a=menu&

则会路由至 /web/source/platform/menu.ctrl.php 文件中

http://w7.cc/app/index.php?c=mc&a=home&

则会路由至 /app/source/mc/home.ctrl.php 文件中。

模块URL地址路由

Web端

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

http://w7.cc/web/index.php?c=site&a=entry&do=themeset&module_name=we7_demo

则会路由至 /addons/we7_demo/site.php 文件中的 doWebThemeset() 方法。

APP端

当传入的c 值为 “entry”时则是一个模块路由。如果a值为空,默认进入模块的site.php;如果a值不为空(a的有效值有:aliapp、baiduapp、phoneapp、site、toutiaoapp、webapp、wxapp、xzapp),则进入对应的模块php文件,例如:

http://w7.cc/app/index.php?i=1&j=2&c=entry&do=list&module_name=we7_demo

则会路由至 /addons/we7_demo/site.php 文件中的 doMobileList() 方法

http://we7.cc/app/index.php?i=1&j=2&c=entry&a=wxapp&do=list&module_name=we7_demo

则会路由至 /addons/we7_demo/wxapp.php 文件中的 doPageList() 方法

2. URL函数

url() - 创建一个URL

在APP端调用

url($segment, $params = array(), $noredirect = false) 

参数

名称类型说明
$segmentstring路由参数
$paramsarray附加参数
$noredirectboolean是否追加微信URl后缀

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

示例

echo url('site/entry/themeset', array('module_name' => 'we7_demo'));
//./index.php?i=281&c=site&a=entry&do=themeset&module_name=we7_demo&wxref=mp.weixin.qq.com#wechat_redirect

echo url('entry/site');
//./index.php?i=281&c=entry&a=site&

在web端调用

url($segment, $params = array(), $contain_domain = false) 

参数

名称类型说明
$segmentstring路由参数
$paramsarray附加参数
$contain_domainboolean是否包含域名信息

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

示例

echo url('site/entry/themeset', array('module_name' => 'we7_demo'));
//./index.php?c=site&a=entry&do=themeset&module_name=we7_demo

echo url('mc/home');
//./index.php?c=mc&a=home&

3. createMobileUrl函数

$this->createMobileUrl() - 模块中二次封装了系统的 url() 函数,使用时变的更加简单

说明

$this->createMobileUrl(string $string);

生成app端的url

示例

class We7_demoModuleSite extends WeModuleSite {
	public function doMobileIndex() {
		echo $this->createMobileUrl('home');
	}

	public function doMobileHome() {
		//上面doMobileIndex()生成的链接会进入到这里
	}
}

4. createWebUrl函数

$this->createWebUrl() - 模块中二次封装了系统的 url() 函数,使用时变的更加简单

说明

$this->createWebUrl(string $string);

生成web端url

示例

class We7_demoModuleSite extends WeModuleSite {
	public function doWebIndex() {
		echo $this->createWebUrl('home');
	}

	public function doWebHome() {
		//上面doWebIndex()生成的链接会进入到这里
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数字化转型高高老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值