admin管理员组文章数量:1633793
####URL路由
入口脚本程序获取到到URL中相关的GET参数,解析后进行权限判断,然后调用相应的控制器处理这个请求。该过程就被称为URL路由(routing)。
####解析路由
#####地址URL地址路由
当传入的URL请求中包含一个名为 c、a、do(可选) 的 GET 参数,它即被视为一个路由,例如:
http://we7/web/index.php?c=platform&a=menu&
则会路由至 /web/source/platform/menu.ctrl.php 文件中
http://we7/app/index.php?c=mc&a=home&
则会路由至 /app/source/mc/home.ctrl.php 文件中
#####模块URL地址路由
当传入的 c 值为 “site”, a 值为 “entry”时则是一个模块路由,例如:
http://we7/web/index.php?c=site&a=entry&do=themeset&m=we7_demo
则会路由至 /addons/we7_demo/site.php 文件中的 doWebThemeset() 方法。
http://we7/app/index.php?i=1&j=2&c=entry&do=list&m=we7_demo
则会路由至 /addons/we7_demo/site.php 文件中的 doMobileList() 方法。
####约定及使用
GET 参数中的 c、a、do为微擎系统的路由参数,应当避免与系统参数冲突,在程序中可以使用 $controller、$action、$do来获取对应的路由三个参数
####创建一个URL
微擎提供一个创建URL的函数 url($segment, $params = array(), $noredirect = false) , 路由的表达式以斜杠“/”的方式组织,每个以斜杠分隔的片段都是指向某一控制器(controller)、操作(action)或是行为(do)。
第二个参数则是以数组的形式表示URL中的QueryString。例如:
//生成此地址
//http://we7/web/index.php?c=site&a=entry&do=themeset&m=we7_demo
echo url('site/entry/themeset', array('m' => 'we7_demo'));
//http://we7/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()生成的链接会进入到这里
}
}
本文标签: 路由
版权声明:本文标题:微擎路由 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1729176212a1188749.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论