微擎二次开发应优先采用模块化扩展、钩子注入和规范数据库操作。模块需含module.php、site.php等文件并置于/addons/下;钩子通过module.php声明并在processor.php或site.php中响应;数据库操作须用pdo_函数,缓存用cache_,敏感字段需加密。

微擎作为国内主流的微信公众号/小程序PHP开发框架,二次开发核心在于理解其模块化结构、钩子机制和数据库操作规范。直接改核心文件风险高,应优先通过自定义模块、插件扩展和钩子注入来实现功能增强。
模块开发:从零创建可独立安装的功能单元
微擎的模块是二次开发最安全、最标准的方式。每个模块需包含 module.php(定义基本信息)、site.php(处理前端逻辑)、processor.php(响应消息事件)和 menu.php(后台菜单配置)等基础文件。
- 模块目录必须放在
/addons/your_module_name/下,命名仅支持小写字母、数字和下划线 -
site.php 中的
doMobileXXX()方法对应前端访问路由,如访问index.php?i=1&c=entry&do=index&m=your_module_name会调用doMobileIndex() - 数据库表建议使用
pdo_insert()、pdo_update()等封装函数,避免原生SQL,自动适配MySQL/SQLite
钩子(Hook)注入:无侵入式扩展系统行为
微擎在关键流程(如用户关注、消息接收、订单生成)预留了钩子点,开发者可在自己模块中注册监听器,无需修改系统源码即可干预逻辑。
解析微信公众号文章,提取标题、作者、正文、图片等信息。用户发送链接(mp.weixin.qq.com)时触发,自动提取内容并可保存至飞书表格。
- 在模块的 module.php 中通过
subscribe、message、order等键声明要监听的钩子类型 - 例如监听用户首次关注事件:在
processor.php中实现respondMessage(),判断$event == 'subscribe'后执行欢迎语+自动打标签逻辑 - 后台操作类钩子(如“用户资料更新后”)需在 site.php 的
doWebXXX()中配合load()->func('hook')主动触发
数据库与缓存:遵循微擎规范提升稳定性
微擎抽象了数据库访问层,所有数据操作应走 pdo_* 函数族;缓存推荐使用 cache_write()/cache_read(),底层自动适配File/Redis(若已配置)。
- 建表务必在模块安装时通过
system_upgrade()或module_build_table()执行,避免手动在phpMyAdmin中操作 - 敏感字段(如手机号、openid)禁止明文存储,微擎提供
authcode()进行简单混淆,重要业务建议自行集成AES加密 - 列表页分页请用
pagination()函数,它会自动解析GET参数并生成微擎风格的分页HTML
前端交互:复用微擎UI组件与JS工具库
微擎后台默认加载了 jQuery、layer、bootstrap 及自研的 util.js(含 tips()、confirm()、post() 等常用方法),前端开发应优先调用这些资源。
- 弹窗提示统一用
util.message('操作成功', '', 'success'),避免原生alert - AJAX提交表单推荐
util.post(url, data, callback),自动处理loading、错误提示和JSON解析 - 上传图片使用
webuploader组件(微擎已内置),回调中获取返回的media_id或本地路径即可
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










