前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微擎:URL路由&创建

微擎:URL路由&创建

作者头像
OwenZhang
发布2021-12-08 17:54:51
2.9K0
发布2021-12-08 17:54:51
举报
文章被收录于专栏:Owen's World

URL路由

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

解析路由

地址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 文件中

模块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=we7_demo 则会路由至 /addons/we7_demo/site.php 文件中的 doMobileList() 方法。

约定及使用

GET 参数中的 c、a、do为微擎系统的路由参数,应当避免与系统参数冲突,在程序中可以使用 controller、action、

创建一个URL

微擎提供一个创建URL的函数 url(

segment,
segment,

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

代码语言:javascript
复制
//生成此地址
//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()生成的链接会进入到这里
    }
}
复制代码
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年10月20日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • URL路由
    • 解析路由
      • 约定及使用
        • 创建一个URL
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档