• Maser
    插件绑定独立域名
    ID vndomain版本 1.1.0插件制作者 Maser免费582 行 / 26.5 KBHook / 后台页
    把指定独立域名绑定到插件页面或网站目录,让不同域名显示各自的内容。
    app/plugins/vndomain/plugin.php
    开发日志已有 2 条

    个人独立维护项目。

    • Maser
      Maser
      版本 1.1.0 7be7da0d1a9f 更新:改个插件名release
    • Maser
      Maser
      版本 1.0.0 a035bb71342c 更新:给插件或者目录绑定域名
    主楼
  • Maser

    版本 1.0.0 更新:
    给插件或者目录绑定域名

    #1
  • 质量报告

    插件质量报告

    插件:vndomain

    Hook功能范围循环使用频率文件读写修改系统表读写系统表读写自己的表
    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

    字段类型可空默认值约束
    -动态定义--无法静态解析
    #2
  • Maser

    每次请求实际开销

    只做: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 查询。

    #3
  • bbs1org

    不是很明白。这个功能不是在nginx配置吗?

    #4
  • Maser

    @bbs1org #4 比如我整个商城,想绑定shop.bbs1.org,访问后直达商城这个插件,不想带有后缀的bbs1.org/shop

    #5
  • bbs1org

    ok

    #7
  • webmaster

    嗯

    #9
  • Maser

    我命名都是随机起的,主打一个自己用,都与实际不太一样

    #6
  • Maser

    版本 1.1.0 更新:
    改个插件名

    #8

发表回复

登录后回复