- Maser2026-09-12
- Maser2026-09-12
版本 1.0.0 更新:
给插件或者目录绑定域名 插件质量报告
插件:
vndomainHook 功能范围 循环 使用频率 文件读写 修改系统表 读写系统表 读写自己的表 app.boot 全站请求启动 回调内 5 读 修正❗️ - - 读 plugin_vndomain_bindings request.csrf_exempt 请求 CSRF 豁免检查 否 2 - - - 读 plugin_vndomain_bindings site.closed_allow 站点关闭访问豁免检查 否 2 - - - 读 plugin_vndomain_bindings admin.tabs 后台管理页标签栏(展示位置:后台Tab) 否 1 - - - - 颜色说明:黄色表示有数据读写,红色表示 Hook 在系统循环中执行,浅蓝色表示有文件写入。“列表跳过”表示回调在列表路径会提前返回,“回调内”表示操作位于回调自身或其帮助函数的循环体内。“文件批处理”表示逐个处理用户一次提交的文件,属于必要操作,不标记修正。只有操作实际处于需要优化的循环路径时,才会标记“修正❗️”。
数据字典
plugin_vndomain_bindings字段 类型 可空 默认值 约束 - 动态定义 - - 无法静态解析 - Maser2026-09-12
每次请求实际开销
只做:1 次配置读取(plugin_config,框架层通常内存缓存)+ 1 次 WHERE host_key=? LIMIT 1 查询。
关键:host_key 在建表时是 UNIQUE 索引(host_key {$t['key']} NOT NULL UNIQUE),所以这是唯一索引等值查找,O(log n),微秒级;而这张表通常只有几条记录。
大量请求根本不查库(提前 return)PHP_SAPI === 'cli' → 直接返回
vndomain_config()['enabled'] 未启用 → 返回
vndomain_current_host() 为空(无 Host)→ 返回
查不到绑定 / 未启用 → 返回
只有真正命中的请求才继续 vndomain_serve_dir / vndomain_mount_plugin,那部分本就是必要的业务处理。关于你看到的「5 读」 那几次读主要来自框架级的 plugin_config()、setting() 等设置读取——普通页面请求本来就发生(被框架其它部分共用,且通常首请求后内存缓存),并非本插件独占。本插件显式触发的数据库读只有那 1 条 host_key 查询。
- bbs1org2026-09-12
不是很明白。这个功能不是在nginx配置吗?
- Maser2026-09-12
- bbs1org2026-09-12
- webmaster2026-09-12
- Maser2026-09-12
- Maser2026-09-12
版本 1.1.0 更新:
改个插件名