当我们觉得一些系统功能满足不了我们的使用需求时,可以使用插件来开发一些功能,覆盖替换系统文件,卸载插件后,会还原到系统文件原来的代码。
使用插件的这个机制来开发覆盖系统功能,即可实现系统主功能的二次开发,又不会影响后续系统升级。
实现的原理就是在插件根目录下,建立对应系统功能的目录和文件。
## 插件目录
plugins [所有插件目录]
├─wc_test [插件目录,命名规范 `开发者标识_插件名称`,如 `wc_test` 、`jxc_test`]
│ │ info.php [插件信息,以及各种参数配置文件]
│ │ Plugin.php [插件入口文件,安装/卸载/钩子等方法都在此处]
│ │ install.sql [数据库安装文件]
│ │ uninstall.sql [数据库卸载文件]
│ │
│ └─app [系统功能目录,可选]
│ │ └─frontend [系统前台功能目录,可选]
│ │ │ └─ Index.php [覆盖系统前台功能index页面,可选]
│ │ │ └─ Question.php [覆盖系统前台功能Question页面,可选]
│ │
│ └─templates [系统模板目录,可选]
│ │ └─default [覆盖默认模板,可选]
│ │ │ └─ index.php [覆盖默认模板的index页面,可选]
│ │
│ └─static [系统资源目录,可选]
│ │ └─common [覆盖公共资源目录,可选]
│ │ │ └─ css [覆盖公共css资源目录,可选]
│ │ │ └─ image [覆盖公共图片资源目录,可选]
│ │ │ │└─ logo.png [覆盖公共图片文件,可选]
*****
我们可以在插件根目录下,建立好对应文件夹后,复制对应的系统文件到插件对应目录里,再进行二次开发,这样的覆盖机制,不会在卸载插件后,影响系统原本功能。