微擎学习笔记

目录结构

pro
├─ addons  ………………………………………… 【模块安装目录】 (意为附加组件)
│  ├─ business  …………………………………… 模块的名称  (示例)
│  │  ├─ images                             建议 css 文件也放此目录.
│  │  ├─ template                           模板目录
│  │  │  ├─ mobile                         APP 端模板目录
│  │  │  │  └─ ... *.html                 APP 端模板文件
│  │  │  └─ ... *.html                     Web 端模板文件
│  │  ├─ inc                                引用的 php 文件目录
│  │  │  ├─ mobile                         Mobile端目录
│  │  │  │  ├─ xxx.inc.php                微站入口
│  │  │  │  └─ ...                        .
│  │  │  └─ web                            Web端模板目录
│  │  │      ├─ xxx.inc.php                微站管理入口
│  │  │      └─ ...                        .
│  │  ├─ icon.jpg                           模块图标
│  │  ├─ preview.jpg                        模块预览
│  │  ├─ manifest.xml                       安装清单
│  │  ├─ module.php                         模块设置
│  │  ├─ processor.php                      消息处理
│  │  ├─ receiver.php                       消息订阅
│  │  └─ site.php                           微站页面
│  └─ ... …………………………………………… 其他扩展模块
├─ api ………………………………………………… .
│  └─ uc.php                                 .
├─ attachment  ……………………………………… 附件文件夹
│  ├─ audios  ……………………………………… 音频附件文件夹
│  └─ images  ……………………………………… 图片附件文件夹
│      ├─ global  ………………………………… 系统公共文件夹
│      │  └─ 上传年份
│      │        └─上传月份
│      │             └─ 随机文件名
│      └─ $uniacid ... ……………………………按公众号年月组织的图片文件
├─ app    ……………………………………………【微站(Mobile)入口】
│  ├─ common                                 .
│  │  ├─ bootstrap.app.inc.php              .
│  │  ├─ common.func.php                    .
│  │  └─ template.func.php                  .
│  ├─ resource                               .
│  │  ├─ css                                .
│  │  ├─ fonts                              .
│  │  └─ js                                 .
│  ├─ source                                 控制器
│  ├─ themes                                 微站皮肤
│  │  ├─ default                            系统默认
│  │  └─ ...                                自定义皮肤
│  └─ index.php                              微站入口
├─ data  ……………………………………………… .
│  ├─ config.php.default                     .
│  ├─ config.php                             系统配置
│  └─ db.php                                 .
├─ framework  ………………………………………【微擎系统通用的工具类和方法】
│  ├─ builtin  ……………………………………【微擎内建模块】
│  │  ├─ basic                              文字回复模块
│  │  ├─ core                               会话消息统计
│  │  │  └─ receiver.php                   .
│  │  ├─ cover                              通用封面回复
│  │  ├─ default                            默认回复模块
│  │  ├─ music                              音乐回复模块
│  │  ├─ news                               图文回复模块
│  │  ├─ userapi                            自定义接口回复模块
│  │  └─ ...                                .
│  ├─ class ………………………………………… 系统功能类                            .
│  ├─ function  …………………………………… 系统功能函数
│  ├─ library ……………………………………… 其他函数库
│  ├─ model ………………………………………… 业务功能model
│  ├─ bootstrap.inc.php                      .
│  ├─ const.inc.php                          .
│  └─ version.inc.php                        
├─ payment …………………………………………… 支付
├─ web ……………………………………………… 【后台管理(Web)入口】
│  ├─ common  ……………………………………… 公用文件 
│  │  ├─ bootstrap.sys.inc.php              .
│  │  ├─ common.func.php                    .
│  │  ├─ frames.inc.php                     .
│  │  └─ template.func.php                  .
│  ├─ resource  …………………………………… 资源文件
│  │  ├─ components                         JS组件
│  │  ├─ css                                样式文件
│  │  ├─ fonts                              字体资源
│  │  ├─ images                             图片文件
│  │  └─ js
│  │      ├─ app ………………………………… 系统js功能
│  │      ├─ lib ………………………………… js第三方库文件
│  │      └─ require.js  ……………………… .
│  ├─ source  ……………………………………… 后台管理控制器
│  ├─ themes  ……………………………………… 后台管理视图
│  │  ├─ default ………………………………… 内建后台管理样式
│  │  └─ ... ……………………………………… 定制界面样式
│  └─ index.php                              后台入口
├─ api.php ………………………………………… 【公众平台与微擎系统通信的接口】
├─ index.php ………………………………………… 微擎入口
└─ install.php ……………………………………… 微擎安装程序

Web端入口

Web端入口主要负责微擎系统的后台管理功能,入口文件是 “/web/index.php”。访问此入口有严格的权限判断,需要需要用户进行登录。此入口主要完成以下工作:

  • 登录用户的身份验证
  • 初始化登录用户的身份信息,分派管理员权限或是操作员权限
  • 权限菜单划分及权限判断
  • 加载系统配置
  • 路由用户的请求

App端入口

App端入口主要负责微擎系统的前端“微站”、“个人中心”及其它普通用户访问的功能。入口文件是 “/app/index.php”。访问“微站”无需身份验证,访问“个人中心”则要求用户进行登录。此入口主要完成以下工作:

  • 初始化当前公众号的数据
  • 初始化微站站点信息、风格、模板、导航等数据
  • 初始化粉丝&会员的身份信息(如果有权限获取)
  • 加载系统配置
  • 路由用户的请求

微信Api入口

微信Api入口主要负责处理微信公众平台请求微擎系统的关键字、图片、语音等数据,入口文件是 “api.php”。此入口只用于公众平台访问。此入口主要完成以下工作:

  • 初始化当前公众号的数据
  • 解析公众平台推送过来的数据结构,转化为微擎消息结构
  • 根据消息结构中的关键字或是事件匹配到相应的模块
  • 调用模块的processor类返回数据给微信公共平台

微擎路由:

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

路由分類

地址URL地址路由

当传入的URL请求中包含一个名为 cado(可选) 的 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 参数中的 cado为微擎系统的路由参数,应当避免与系统参数冲突,在程序中可以使用 $controller$action$do来获取对应的路由三个参数

创建一个URL

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

//生成此地址
//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');
点赞

发表评论