通过研究发现很多php开源系统功能很多但是代码在一起很难分离,这样就给系统的二次开发增加了很多困难,后来thinkphp6等系统增加了事件的概念,但是真正用起来的却比较少,早期使用插件设计的php系统比如onethink,onebase,fastadmin等等,但是针对大规模开发系统显得又无能为力,个人通过学习不同系统的特点进行总结,设计了niushop的插件设计思路。
niushop系统采用thinkphp6进行开发,所以利用了thinkphp6的事件机制进行的扩展。
首先开发一个功能板块要考虑几个问题
1. 功能界面,其实考虑界面最主要的是访问路径,也就是路由
2.具体功能,功能分为板块独立的功能体系比如开发拼团考虑拼团组建立,参团等功能。其次就是关联性功能比如,拼团功能也要考虑订单发货,完成,结算等等,同时要与会员的注册与推荐关系进行关联等等。
3. 代码分离
niushop方面就做的很好,下面是插件的设计思路,关于具体插件的开发以及应用会逐步介绍给大家
addon 插件目录)
├─alipay 插件名称
│ ├─admin admin模块
│ │ ├─controller 控制器
│ │ ├─view 视图
│ │
│ ├─config 配置文件
│ │ ├─diy_view.php 自定义模板配置文件(必存在)
│ │ ├─event.php 事件配置文件(必存在)
│ │ ├─info.php 插件配置文件(必存在)
│ │ ├─menu_admin.php 平台端菜单配置(必存在)
│ │ ├─menu_shop.php 店铺端菜单配置(必存在)
│ │
│ │─data 插件数据
│ │
│ ├─event 相关事件文件(钩子)
│ │ ├─Install.php 安装插件执行事件(必存在)
│ │ ├─UnInstall.php 卸载插件执行事件(必存在)
│ │ ├─Pay.php 对应插件执行事件
│ ├─model 插件逻辑模块
│ ├─icon.png 插件logo
具体niushop的插件设计思路可以在看云上面查看: