多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 六、安装与卸载 熟悉模块的安装卸载机制 开发者工具中的模块打包向导功能: 模块打包功能实际上只是帮开发者做了一些重复性的工作。 这边的打包工具,主要做的是生成Info文件夹中的install.sql,guide.json,cleanData.sql这几个文件,同时支持自动替换模块下的文件和下载压缩后的文件功能。 打包工具的工作流程: 1.选择需要打包的模块 2.导出module为当前选择模块名的所以menu表中的记录,生成json数据记录。根据menu中的记录,工具会再去比较模块名Controller这个类的相应的菜单项,如果存在public的方法,并且在菜单中没有的,则标记为可能遗漏的菜单项,提醒开发者补全菜单,如果开发者不补全菜单,则不允许进入下一步。 3.查找module为当前选择模块名的所有权限节点,同时允许开发者选择一些权限节点作为默认权限节点,默认的权限节点在安装的时候会自动赋给全部的用户组。不选,则需要站长在安装模块后自己去给用户组赋权。 4.查找module为当前选择模块名的所有action和action_limit 5.超找所有 模块名 开头的数据表,同时检测有数据的表,作为默认数据,当然开发者也可以不勾选一些表,不勾选的表将不会生成默认数据 6.最后一步,预览将会生成的3个文件,并可以选择替换或者下载zip压缩包。 至此,模块基本已经导出成功了,有一点值得注意的是,每个阶段导出的文件,我们都可以进行修改。修改后的结果才是最终生成的结果。 卸载 卸载的时候,系统会做以下操作: 1.在menu表中,清理掉模块相关菜单项 2.在auth_rule表中,清理掉模块相关的前台权限节点 3.在action表中,清理掉模块相关的用户行为 4.在action_limit表中,清理掉模块相关的用户行为限制 5.执行cleanData.sql清理掉模块相关的数据(此步只有用户选择不保留数据才会执行。一般情况下为drop表语句) 6.执行uninstall.php文件,(如果文件存在的话,一般此步骤放置一些较为复杂的操作。此文件将被require_once进去,所以运行环境为Admin/ModuleController/uninstall()) 7.将module表中的模块is_setup设为0,认为模块已经被卸载。 注:所有的清除操作都是以module字段为条件进行判断的。 安装 安装的时候会做一下操作: 1.根据Info/guide.json执行操作,如果Info/guide.json存在的话: 1.清理menu表,并根据guide.menu导入菜单项 2.清理auth_rule表,并根据guide.auth_rule导入菜单项 3.根据guide.default_rule设置每个用户组的权限为默认权限 4.根据guide.action导入用户行为 5.根据guide.action_limit导入用户行为限制 6.执行install.sql