【理论篇】人人商城微擎框架说明(五)

哈根达斯
2021-06-26 / 0 评论 / 502 阅读 / 正在检测是否收录...

本章节开始步入开发篇阶段,本文主要为大家介绍微擎人们的一些一些基本内容,包含他的基本框架结构,目录介绍,以及文件说明,人人商城是基于微擎上做的开发,了解微擎的基础知识是十分必要的。

框架目录

微擎目录机构


we7
├─ 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                       消息订阅
│  │  ├─ webapp.php                         PC版页面功能
│  │  ├─ wxapp.php                          小程序接口功能
│  │  ├─ hook.php                           嵌入点
│  │  └─ site.php                           微站页面
│  └─ ...                                   其他扩展模块
├─ api                                      .
│  └─ accesstoken.php                        多系统共用accesstoken接口
├─ attachment                               附件文件夹
│  ├─ audios                                音频附件文件夹
│  └─ images                                图片附件文件夹
│      ├─ global                            系统公共文件夹
│      │  └─ 上传年份
│      │        └─上传月份
│      │             └─ 随机文件名
│      └─ $uniacid ...                      按公众号年月组织的图片文件
├─ app                                      微站(Mobile)入口
│  ├─ common                                .
│  │  ├─ bootstrap.app.inc.php              .
│  │  ├─ common.func.php                    .
│  │  └─ template.func.php                  .
│  │  └─ tpl.func.php                       .
│  ├─ resource                              微站资源文件
│  │  ├─ css                                样式文件
│  │  ├─ fonts                              字体资源
│  │  └─ js                                 .
│  ├─ source                                控制器
│  ├─ themes                                微站皮肤
│  │  ├─ default                            系统默认
│  │  └─ ...                                自定义皮肤
│  └─ index.php                             微站入口
├─ data                                     .
│  ├─ config.php                            系统配置
│  └─ db.php                                .
├─ framework                                微擎系统通用的工具类和方法
│  ├─ builtin                               微擎内建模块
│  │  ├─ basic                              文字回复模块
│  │  ├─ core                               会话消息统计
│  │  │  └─ receiver.php                    .
│  │  ├─ cover                              通用封面回复
│  │  ├─ default                            默认回复模块
│  │  ├─ music                              音乐回复模块
│  │  ├─ news                               图文回复模块
│  │  ├─ userapi                            自定义接口回复模块
│  │  └─ ...                                .
│  ├─ class                                 系统功能类                            .
│  ├─ function                              系统功能函数
│  ├─ library                               其他函数库
│  ├─ model                                 业务功能model
│  ├─ table                                 数据库表model
│  ├─ bootstrap.inc.php                     核心文件
│  ├─ const.inc.php                         常量定义文件
│  └─ version.inc.php                       版本说明
├─ payment                                  支付
├─ web                                      后台管理(Web)入口
│  ├─ common                                公用文件 
│  │  ├─ bootstrap.sys.inc.php              .
│  │  ├─ common.func.php                    .
│  │  ├─ frames.inc.php                     .
│  │  └─ permission.func.php                .
│  │  └─ template.func.php                  .
│  │  └─ tpl.func.php                       .
│  ├─ resource                              资源文件
│  │  ├─ components                         JS组件
│  │  ├─ css                                样式文件
│  │  ├─ fonts                              字体资源
│  │  ├─ home                               后台客户端资源文件
│  │  ├─ images                             图片文件
│  │  └─ js                                 .
│  │      ├─ app                            系统js功能
│  │      ├─ lib                            js第三方库文件
│  │      └─ require.js                     .
│  ├─ source                                后台管理控制器
│  ├─ themes                                后台管理视图
│  │  ├─ default                            内建后台管理样式
│  │  └─ ...                                定制界面样式
│  └─ index.php                             后台入口
├─ api.php                                  公众平台与微擎系统通信的接口
├─ index.php                                微擎入口
└─ install.php                              微擎安装程序

入口执行流程

多数入口文件都是问index.php,微擎目前执行执行入口文件,在入口文件中,会加载framework文件夹下,框架核心文件bootstrap.inc.php,那我们来see(看)see(kan)这个文件都干了什么勾当!

加载其它文件

核销文件中预加载了一些框架必要核心,包含但不限于如下

  • 配置文件data/config.php
  • 常量文件framework/const.inc.php
  • 类加载和方法加载文件framework/class/loader.class.php
  • 其它文件如下代码:

load()->func('global');// 全局方法
load()->func('compat');//扩展兼容方法如json_encode,openssl_encrypt等
load()->func('compat.biz');//用户扩展方法
load()->func('pdo');//数据库CURD方法
load()->classs('account');//会员账户
load()->model('cache');//平台缓存
load()->model('account');
load()->model('setting');
load()->model('module');
load()->library('agent');
load()->classs('db');
load()->func('communication');

给大家解释下这些方法加载的意思

  • load()->func :加载framework/function下对应的*.func.php方法文件
  • load()->model :加载framework/model下对应的*.mod.php方法文件
  • load()->classs :加载framework/classs下对应的*.class.php类文件
  • load()->library :加载framework/library下对应的第三方库文件

2. 定义变量/常量

比较常见的也是后续开发过程中都会用的$_GPC中保存web开发相关,$_W保存系统配置相关两个变

路由

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

举例说明

  1. web客户端
    正常路由:

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

上例子中为websource/site文件夹中entry.ctrl.php文件,themeset执行方法,

模块插件路由:


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

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

  1. app端

正常路由:


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

上例子中为websource/entry文件夹中wxapp.ctrl.php文件,list执行方法,

模块插件:


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() 方法

插件

插件为微擎扩展的核心方式,后续介绍的人人商城也是作为微擎框架的插件做二次开发,主要目录为addons下,后面章节我们将为大家介绍如何开发一个简单微擎插件应用

总结

本文主要为大家介绍微擎的基础框架,以及入口文件执行流程,更多详细的内容还需要大家自己仔细的阅读源代码去理解。

0

评论 (0)

取消