// +---------------------------------------------------------------------- declare (strict_types = 1); namespace addon\blog; use think\facade\Db; use ywxapp\AddonBase; /** * Addon 类 * * @author ywxapp */ class Addon extends addon { /** * 安装钩子 * * 菜单与建表/种子数据由框架统一处理,无需在此手写: * - 菜单:addon/blog/menu.json * backend → wxapp_admin_power(后台权限/菜单,含 addon 归属) * member → wxapp_user_rule(module='member',会员中心) * frontend → wxapp_user_rule(module='frontend',前台) * - 数据:addon/blog/install.sql(建表,框架 importsql 白名单执行) * * 这里仅保留插件自身的额外初始化钩子(无需可留空)。 */ 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 'blog:%'"); Db::execute("DELETE FROM wxapp_admin_power WHERE addon='blog'"); return true; } }