* @Date: 2026-08-01 23:18:56 * @LastEditors: YwxApp * @LastEditTime: 2026-08-17 00:31:35 * @Description: * @FilePath: \ywxapp_dev\addon\docs\Addon.php * @CustomString: Copyright (c) 2026 YwxApp */ // +---------------------------------------------------------------------- // | YwxApp [ WE CAN DO IT JUST THINK ] // +---------------------------------------------------------------------- // | Copyright (c) 2026-2036 http://ywxapp.cn All rights reserved. // +---------------------------------------------------------------------- // | Author: ywxapp // +---------------------------------------------------------------------- declare (strict_types = 1); namespace addon\docs; use think\facade\Db; use ywxapp\AddonBase; /** * 文档中心插件 * * 菜单与建表/种子数据由框架统一处理: * - 菜单:addon/docs/menu.json * - 数据:addon/docs/install.sql(框架 importsql 白名单执行 CREATE TABLE / INSERT) * * @author ywxapp */ class Addon extends AddonBase { /** * 安装钩子 */ public function install() { return true; } /** * 卸载钩子 * * 框架 AddonService::deleteMenu() 只清理 admin_power, * 这里补清 user_rule 中本插件的前端菜单(按 name 前缀),避免残留。 * 采用物理删除,防止软删除后唯一键 name 冲突导致重装失败。 */ public function uninstall() { Db::execute("DELETE FROM wxapp_user_rule WHERE name LIKE 'docs:%'"); Db::execute("DELETE FROM wxapp_user_rule WHERE name LIKE 'docs/%'"); Db::execute("DELETE FROM wxapp_admin_power WHERE addon='docs'"); return true; } /** * 启用钩子:清理目录树缓存 */ public function enabled() { \think\facade\Cache::tag('docs_tree')->clear(); return true; } /** * 禁用钩子:清理目录树缓存 */ public function disabled() { \think\facade\Cache::tag('docs_tree')->clear(); return true; } }