限时免费试用:欢迎注册 api.bigmodel.org ,快速体验大模型 API 接入服务。
当前位置:首页 >开发者 >网站框架 >二次开发 >微擎

微擎模块开发流程

分类:微擎时间:2018-07-22浏览:8635
http://wq.90ckm.com/app/index.php?i=2&c=entry&eid=15
i:是公众号的站内id
c=entry :应用入口
eid:用户安装后的应用id
数据表: ims_modules 模块表,一个模块应该有一个记录 ims_modules_bindings ,模块后台菜单表记录,一个模块有N多记录(eid=15) ims_uni_account_modules,公众号应该有的权限及配置信息,如果没有可以忽略 前台原始(使用app): http://xxxx.com/app/./index.php?i=2&c=entry&eid=15 MVC形式 http://xxxx.com/app/index.php?i=2&c=entry&do=index&m=two_eggs do=index 前台方法====>doMobileXXX =============>doMobileIndex方法 后台原始(使用web) http://xxxx.com/web/index.php?c=site&a=entry&eid=17&version_id=0 MVC形式 http://xxxx.com/web/index.php?i2&c=site&do=Confs&m=two_eggs do=Confs==> site.php 后台方法====>doWebXXX =============>doWebConfs方法
site.php
参考: 执行 http://xxx.com/web/index.php?c=site&a=entry&eid=6 系统是如何找到具体模块中的对应方法的?下面简单梳理一下: web目录下的index.php 包含了require '../framework/bootstrap.inc.php'; 在bootstrap.inc.php的最后读取controller,action,do $controller = $_GPC['c']; $action = $_GPC['a']; $do = $_GPC['do']; index.php继续往下走,require _forward($controller, $action); function _forward($c, $a) { $file = IA_ROOT . '/web/source/' . $c . '/' . $a . '.ctrl.php'; return $file; } 包含了 /web/source/site/entry.ctrl.php 在entry.ctrl.php里: 从ims_modules_bindings表里读取eid=6的记录到$entry,然后根据记录加载模块, $site = WeUtility::createModuleSite($entry['module']); define('IN_MODULE', $entry['module']); ... $method = 'doWeb' . ucfirst($entry['do']); exit($site->$method()); 例如$entry['do']是stores,那实际调用的方法是模块目录下site.php里的doWebStores
本站文章如未注明出处均为原创,转载请注明出处,如有侵权请邮件联系站长。
0/500
Share your thoughts respectfully.