// +---------------------------------------------------------------------- declare (strict_types = 1); namespace addon\mqttbroker; use think\facade\Db; use ywxapp\AddonBase; /** * Addon 类 * * @author ywxapp */ class Addon extends AddonBase { /** * 安装钩子:表由 install.sql 统一创建,这里无需额外处理 */ public function install() { return true; } /** * 卸载钩子:清理本插件的数据表与菜单残留 */ public function uninstall() { $prefix = Db::getConfig('prefix'); $tables = [ 'mqttbroker_connection', 'mqttbroker_message', 'mqttbroker_topic', 'mqttbroker_auth', 'mqttbroker_acl', 'mqttbroker_retain', 'mqttbroker_offline', 'mqttbroker_stats', 'mqttbroker_rule', 'mqttbroker_outbox', ]; foreach ($tables as $t) { Db::execute("DROP TABLE IF EXISTS `{$prefix}{$t}`"); } // 清理框架菜单(后端权限 + 前端/会员规则),前缀同样动态获取 Db::execute("DELETE FROM `{$prefix}user_rule` WHERE name LIKE 'mqttbroker:%'"); Db::execute("DELETE FROM `{$prefix}admin_power` WHERE addon='mqttbroker'"); return true; } }