🔥 内测体验官招募中:参与内测,正式版发布免费领专业版授权码(价值 ¥199) 截止 2026-09-30 23:59 立即参与 →

语信IDC财务管理系统 · 开发文档

插件开发 · 模板开发 · 上游对接 · 自研受控端 · 数据库结构 · 系统在线更新

当前版本:V1.8 · 更新日期:2026-09-09 · 语信科技

一、系统介绍

语信IDC财务管理系统是一款基于ThinkPHP 8开发的IDC财务管理系统,支持虚拟主机、VPS/云服务器、CDN等产品的销售和管理。系统采用插件化架构,支持通过插件扩展功能,支持多模板切换。

系统特性

  • 多产品类型支持:虚拟主机、VPS/云服务器(弹性购买)、CDN、服务器租用
  • 弹性云重构:VPS 支持弹性规格(CPU/内存/系统盘/带宽/IP 数量)、实时计价、两级联动选系统镜像,购买页按产品类型区分(虚拟主机用 MB,服务器用 GB)
  • 插件化架构:插件必须适配系统(遵循 PluginManager 契约),系统核心永远排在第一位,不因插件改动;支持静态 nodeAction 与实例 hostAction 两种插件风格
  • 多模板支持:支持前台、用户中心、后台、代理端模板切换,模板安装在 view/template/ 目录,静态资源通过 __STATIC__ 引用
  • 上游分组对接:支持对接第三方财务系统与同系统互联,分组选插件 → 填 API → 测试节点 → 产品联动获取配置
  • 自研 KVM 受控端:kvm-agent 受控端 + kvm 插件,父机 KVM 开出客户 VPS,含云主机控制面板(概览/控制台/电源/重装/重置密码/监控/网络)
  • 虚拟主机控制面板:自研控制面板,支持站点管理、PHP切换、伪静态、SSL等,插件可扩展
  • API对接功能:支持第三方系统通过API对接资源池,实现产品查询、订单创建、主机管理等
  • 同系统对接插件:支持两个语信IDC财务系统之间的资源池对接(A系统对接B系统的产品)

系统要求

  • PHP >= 8.0
  • MySQL >= 5.7
  • ThinkPHP 8.x
  • 宝塔面板(推荐)

二、快速开始

表前缀说明:系统支持自定义表前缀,安装时可填写,默认 yxidc_。系统代码中不写死表前缀,全部使用数据库配置联动。开发插件时请使用 Db::name('表名') 而不是写死表前缀。

目录结构

├── app/                    # 应用目录
│   ├── admin/              # 后台管理
│   ├── home/               # 前台
│   ├── user/               # 用户中心
│   ├── api/                # API接口
│   └── common.php          # 公共函数
├── plugins/                # 插件目录
│   └── plugins/            # 插件列表(纯净安装包为空,每个插件一个目录)
│       └── 插件标识/        # 开发者开发的插件目录
├── view/                   # 模板视图根目录
│   └── template/           # 模板安装目录(V1.1.3.2 起,原根目录 template/ 已迁移)
│       ├── yuxin/          # 官方默认模板
│       │   └── default/
│       └── 开发者标识/模板名/  # 开发者发布的第三方模板
├── public/                 # 公开目录(静态资源发布到 public/static/)
├── route/                  # 路由配置
├── config/                 # 配置文件
│   └── version.php         # 系统版本配置
├── runtime/                # 运行时目录
└── vendor/                 # 第三方库
说明:纯净安装包仅包含系统核心文件和默认模板,不包含任何第三方插件。开发者开发的插件安装后会出现在 plugins/plugins/插件标识/ 目录下。
模板目录迁移说明:V1.1.3.2 起模板目录已从根目录 template/ 迁移到 view/template/(与 ThinkPHP 视图根目录统一)。开发新模板请按新目录结构开发;旧模板通过系统在线更新会自动迁移并清理旧目录。

三、插件开发指南

插件结构

每个插件放在 plugins/plugins/插件标识/ 目录下,包含以下文件:

plugins/plugins/bt/
├── Bt.php              # 插件主类
├── plugin.json         # 插件配置文件
├── install.sql         # 安装SQL(可选,插件自带表)
├── config.html         # 插件配置页面模板(可选)
└── README.md           # 插件说明

plugin.json 配置文件

{
    "name": "bt",
    "title": "宝塔官方API",
    "version": "1.0.3",
    "author": "语信科技",
    "type": "host",
    "description": "对接宝塔面板官方API,支持虚拟主机自动开通和自研控制面板",
    "config_params": [
        {
            "key": "php_version",
            "name": "PHP版本",
            "type": "select",
            "options": [
                {"value": "", "label": "纯静态"},
                {"value": "74", "label": "PHP 7.4"},
                {"value": "82", "label": "PHP 8.2"}
            ],
            "default": "82",
            "user_selectable": true,
            "dynamic": true,
            "description": "站点运行的PHP版本(从受控端动态获取已安装版本)"
        }
    ],
    "panel_actions": ["site_list", "php_version", "rewrite", "ssl", "ftp", "domain", "backup"]
}

配置字段说明

字段类型说明
namestring插件标识(唯一)
titlestring插件名称
versionstring插件版本
authorstring插件作者
typestring插件类型:host/vps/cdn/dedi/payment/sms
descriptionstring插件描述
config_paramsarray可配置参数列表
panel_actionsarray自研控制面板支持的操作(host类型插件)
panelobject控制面板声明(vps 等类型插件):enabled/title/template/tabs

插件主类(两种风格,推荐实例风格)

系统 PluginManager::hostAction() 同时支持两种插件风格,插件二选一实现:

风格一:静态 nodeAction(bt 风格)——先由系统解析产品关联的节点,再调用插件静态方法:

<?php
namespace plugin\bt;

class Bt
{
    public static function nodeAction(array $node, array $product, array $host, string $action, array $extra = []): array
    {
        // 实现插件逻辑
    }

    public static function testConnection(array $node): array
    {
        // 测试连接
    }

    public static function panelAction(array $node, array $host, string $action, array $params = []): array
    {
        // 控制面板操作
    }

    public static function getLoginInfo(array $node, array $host): array
    {
        // 返回登录信息
    }
}

风格二:实例 hostAction(kvm / 对接通用风格,推荐)——插件实例化时传入合并后的配置(插件全局 config + 产品 config,若产品关联上游分组则上游分组 config 优先覆盖),方法签名更简洁,无需自行解析节点:

<?php
namespace plugin\kvm;

class Kvm
{
    /**
     * 构造注入:合并后的插件配置
     */
    public function __construct(array $config = [])
    {
        $this->config = $config;
    }

    /**
     * 服务操作(系统统一入口)
     * @param string $action create/renew/terminate/suspend/unsuspend/resetpwd/upgrade/login/test
     * @param array  $host   主机服务记录(含 config,开通成功后系统会把 plugin_result 回写到 host.config)
     * @param array  $extra  额外参数(用户选择的配置等)
     */
    public function hostAction(string $action, array $host, array $extra = []): array
    {
        // 实现插件逻辑
    }
}
插件适配系统原则(核心):插件必须适配系统、遵循 PluginManager 契约,系统核心不因插件改动。例如对接第三方财务系统时,以「上游分组 + 对接插件」方式接入,而不是让系统为某个第三方单独改版。

操作类型说明

操作类型说明
create创建服务(先开通、后扣费)
renew续期服务
terminate删除服务
suspend暂停服务
unsuspend启用服务
resetpwd重置密码
upgrade弹性升级(VPS 重构后支持)
login一键登录(可选)
test测试连接

开通回写 plugin_result

插件 create 成功时,可在返回的 data 中回传 plugin_result(如受控端返回的虚拟机 ID、IP、SSH 账号等),系统会自动将其合并写入 host.config.plugin_result。后续控制面板等操作通过该 ID 定位上游资源(云主机控制面板依赖此字段,缺失会提示"云主机ID缺失")。

返回值格式

return [
    'code' => 0,        // 0成功,1失败
    'msg' => '成功',     // 提示信息
    'data' => []         // 返回数据
];
插件配置页面:插件可以在 config.html 中定义自己的配置页面模板,安装后在插件列表中会显示"配置"按钮,点击进入插件配置页面,而不是在左侧菜单增加子菜单。

四、插件可配置参数

参数类型

类型说明前台显示
select下拉选择下拉框
radio单选单选按钮
text文本输入输入框
number数字输入数字输入框
textarea多行文本文本域

参数配置说明

{
    "key": "php_version",           // 参数键名
    "name": "PHP版本",              // 参数名称
    "type": "select",               // 参数类型
    "options": [                    // 选项(select/radio类型需要)
        {"value": "", "label": "纯静态"},
        {"value": "82", "label": "PHP 8.2"}
    ],
    "default": "82",                // 默认值
    "user_selectable": true,        // 是否允许用户在购买时选择
    "dynamic": true,                // 是否动态获取选项(如PHP版本从受控端获取)
    "description": "站点运行的PHP版本"  // 参数描述
}

用户可选择参数

user_selectable 设置为 true 时,用户在购买产品时可以在购买详情页选择该参数的值。用户选择的值会覆盖产品的默认配置,并在开通服务时传递给插件。

动态参数

dynamic 设置为 true 时,参数选项会从受控端动态获取(如PHP版本列表从宝塔面板获取已安装的PHP版本),而不是写死在配置中。

宝塔插件可配置参数示例

参数键名参数名称类型用户可选择动态默认值
php_versionPHP版本select82
db_version数据库版本select57
db_charset数据库字符集selectutf8mb4
create_db创建数据库radio
create_ftp创建FTPradio
space_size空间大小number1024
db_size数据库大小number100

五、模板开发指南

模板目录结构(V1.1.3.2 起)

模板安装在系统根目录 view/template/开发者标识/模板名/ 下,一个模板包包含以下内容:

view/template/开发者标识/模板名/
├── template.json          # 模板清单(name/title/version/developer)
├── view/                  # 模板视图文件(PHP引擎读取,浏览器无法直接访问)
│   ├── home/              # 前台模板
│   ├── user/              # 用户中心模板
│   ├── admin/             # 后台模板(仅官方默认模板)
│   └── agent/             # 代理端模板(仅官方默认模板)
└── static/                # 静态资源(可选,随模板包一起打包)
    ├── css/
    ├── js/
    └── images/
静态资源发布机制:模板包中的 static/ 目录必须随模板一起打包发布。安装/更新模板时,系统会自动把 static/ 发布到 public/static/template/模板名/ 目录供浏览器访问。view/ 目录是 PHP 引擎读取的模板源码,浏览器无法直接访问,静态资源不能只放在 view/ 下,否则页面加载不到样式。

静态资源引用规范

系统已启用 ThinkPHP 模板字符串替换(tpl_replace_string,自 V1.1.3.7 起)。模板中引用静态资源应使用 __STATIC__ 前缀,编译时自动替换为 /static不要写死 /static/ 路径(便于子目录部署与路径调整):

<link rel="stylesheet" href="__STATIC__/template/modern/theme.css">
<script src="__STATIC__/template/modern/app.js"></script>
<img src="__STATIC__/template/modern/images/logo.png" alt="">

模板自己的静态资源位于 /static/template/模板名/(安装模板时由系统自动从模板包 static/ 发布),系统公用 JS/CSS(__STATIC__/css/__STATIC__/js/common.js__STATIC__/js/dialog.js 等)可直接调用,模板开发时应优先复用公用文件,避免重复编写、确保联动统一。

兼容性:使用 __STATIC__ 写法要求 IDC 系统版本 ≥ V1.1.3.7(该版本起系统启用 tpl_replace_string)。在更早版本系统上部署模板时,请改回写死 /static/ 路径。

模板切换

系统支持在后台分别切换前台模板与用户中心模板。模板安装后位于 view/template/开发者标识/ 目录,管理员在「后台 → 模板管理」中选择启用即可。

模板变量

变量说明
$siteName站点名称
$userInfo当前登录用户信息(用户中心,含 username/money 等)
$activeMenu用户中心侧边栏高亮菜单标识(index/order/service/finance/recharge/ticket/apikey/profile/password,系统自动赋值)
$config系统配置
$controller当前控制器
$action当前操作

模板继承与包含

{extend name="layout" /}
{block name="title"}页面标题{/block}
{block name="content"}
    页面内容
{/block}
包含路径规范(重要):模板引擎的视图根目录已包含场景目录(home/user/admin)。{include file="xxx" /} 的路径是相对视图根的,不要写场景前缀。例如用户中心的侧边栏文件在 view/user/sidebar.html,应写 {include file="sidebar" /},不能写 {include file="user/sidebar" /}(会被解析成 view/user/user/sidebar.html 导致「模板文件不存在」报错)。
条件标签引号规范:{if} 标签条件内使用单引号,如 {if condition="$activeMenu eq 'index'"},不要使用 \" 转义引号(模板引擎不剥离转义,会编译成 PHP 语法错误)。

六、控制面板开发(虚拟主机 / 云主机)

概述

系统支持自研控制面板:虚拟主机(站点/数据库/FTP等)与云主机(VPS 电源/重装/重置密码等)均可在系统内直接管理,无需跳转第三方面板。控制面板采用插件化架构,插件通过 panel 声明 + 面板分发方法实现。

控制面板架构

控制面板采用插件化架构,不同的插件可以实现自己的控制面板逻辑。系统提供统一的控制面板入口和 UI 框架:虚拟主机插件实现 panelAction 方法;云主机插件在 plugin.json 中声明 panel(enabled/title/template/tabs),面板数据统一走 PluginManager::panel() 分发(module + action + params)。

控制面板支持的操作

操作说明
site_list站点列表
site_info站点详情
php_versionPHP版本切换
rewrite伪静态规则管理
run_dir运行目录设置
domain域名列表管理
default_site默认站点设置
sslSSL证书管理
https_modeHTTPS模式设置
ftpFTP管理
backup网站备份
reverse_proxy反向代理
redirect重定向管理

插件实现控制面板

public static function panelAction(array $node, array $host, string $action, array $params = []): array
{
    switch ($action) {
        case 'site_list':
            // 获取站点列表
            break;
        case 'php_version':
            // 切换PHP版本
            break;
        case 'rewrite':
            // 伪静态管理
            break;
        // ... 其他操作
    }
    return ['code' => 0, 'msg' => '成功', 'data' => []];
}

宝塔API参考

宝塔官方API文档:https://docs.bt.cn/api/

常用API接口:

  • 站点管理:/site?action=AddSite/site?action=DeleteSite
  • PHP版本:/site?action=GetPHPVersion/site?action=SetPHPVersion
  • 伪静态:/site?action=GetRewriteList/site?action=SetRewrite
  • SSL证书:/site?action=GetSSL/site?action=SetSSL
  • FTP管理:/ftp?action=AddFtp/ftp?action=DeleteFtp
  • 域名管理:/site?action=GetDomains/site?action=AddDomain
注意:宝塔面板V13.0.0及以上版本,API调用时面板地址需要包含安全目录(如 https://ip:port/安全目录)。测试连接时也需要填写完整的带安全目录的地址。

云主机(KVM)控制面板

自研 KVM 受控端对接插件(type: vps)通过 plugin.json 的 panel 声明控制面板,系统自动渲染面板框架并分发数据请求:

"panel": {
    "enabled": true,
    "title": "云主机控制面板",
    "template": "panel_kvm",
    "tabs": [
        {"key": "overview", "name": "主机概览"},
        {"key": "console", "name": "控制台"},
        {"key": "power", "name": "电源管理"},
        {"key": "os", "name": "重装系统"},
        {"key": "password", "name": "重置密码"},
        {"key": "monitor", "name": "性能监控"},
        {"key": "network", "name": "网络管理"}
    ]
}

面板数据接口统一为 POST /user/service/panelApi(参数:host_id、module、action、params=JSON 字符串),系统按 panel.template 加载对应视图模板(如 panel_kvm.html),前端切换 tab 时调用页内 switchTab(key) 重新请求对应模块数据。云主机资源定位依赖 host.config.plugin_result.id(开通时受控端回传的虚拟机 ID),缺失时会提示"云主机ID缺失"。

七、上游分组与第三方系统对接

概述

系统区分两种货源方式:自营(使用自己的受控端:宝塔面板 / 自研 KVM 受控端等)与代理 / 对接(对接第三方财务系统,或同系统互联)。对接第三方统一走「上游分组」机制,系统核心不因第三方单独改版——由对接插件适配系统(PluginManager 契约)。

核心流程

  1. 安装对接插件:在后台「插件管理」安装并启用对接第三方系统的插件(如第三方对接插件),在插件配置页填写 API 站点、API Key 等基础信息;或在「上游分组」中新建分组时选择对接插件,直接在该分组填写 API 配置(一个对接插件可对接多个站点,各分组独立配置)
  2. 添加上游分组:后台「产品系统 → 上游分组」新建分组,选择对接插件后填写该站点的 API 地址 / Key / Secret 等配置项(按插件声明的 config 显示,不再显示通用 JSON 高级配置)
  3. 测试节点:在分组操作中点「测试节点」,验证与上游 API 连通性(返回成功后才可用于产品关联)
  4. 添加产品:后台「产品管理 → 添加产品」,选择所属分组后选择货源方式(自营 / 代理),代理时下拉选择上游分组,并可通过「一键获取」拉取上游地区的产品列表、系统镜像、弹性配置等,选择上游产品后自动联动填入产品配置
  5. 购买联动:前台购买页按产品类型渲染(服务器 GB / 虚拟主机 MB),系统镜像两级联动(操作系统类型 → 版本),购买时系统调用上游接口开通,并把上游返回的资源 ID 写入 host.config.plugin_result

上游分组配置

字段说明
分组名称上游站点标识,如"上游-上海节点"
对接插件选择已安装的对接插件(仅列出与产品类型匹配的对接插件,不出现自研插件)
API 配置按插件声明的配置项显示(API 地址 / Key / Secret 等),配置保存在该分组内,多个站点可各填一套
状态 / 排序启用状态与显示顺序
测试节点通过后,该分组即可在添加产品时被选择;分组配置的优先级高于插件全局配置(PluginManager::hostAction 会合并上游分组 config 覆盖插件全局 config)。

对接插件选项契约(listOptions)

对接插件通过 listOptions 返回上游产品的弹性配置选项,系统据此在后台「添加产品」与前台「购买详情页」渲染输入控件。插件必须声明每个选项的输入方式 control,系统按契约渲染,不感知上游命名(过滤哪些选项、如何取最低档等也由插件自行处理)。

// listOptions 返回结构
{
    "code": 0,
    "msg": "成功",
    "data": {
        "host": { "hostname": "ecs", "password": "xxx", "port": 22 },  // 开通参数(主机名/密码/远程端口)
        "min_config": { "cpu": 1, "memory": 2, "disk": 20, "ip_count": 1 }, // 最低配置(自动填入产品默认配置)
        "skip_options": { "region_option_id": 223, "os_option_id": 224 },   // 需跳过的选项ID(如系统镜像由购买页联动获取)
        "groups": [                     // 弹性配置分组
            {
                "option_key": "ip_count", // 选项键名(唯一,对应 yxidc_product_option.option_key)
                "name": "IP数量",          // 显示名称
                "unit": "个",              // 单位
                "control": "slider",       // 输入方式(见下表)
                "qty_min": 1,              // 数量型最小值(slider/stepper/number)
                "qty_max": 4,              // 数量型最大值
                "unit_price": 11,          // 单价(元/单位,数量型按 数量 × 单价 计价)
                "options": [               // 选项列表(select/radio/fixed 使用)
                    { "id": 622, "label": "1个", "price": 11 },
                    { "id": 197629, "label": "2个", "price": 16 }
                ]
            }
        ]
    }
}
control 值输入方式前台渲染依赖字段
select下拉选择下拉框(档位,每个档位对应价格)options
radio单选卡片单选按钮组options
number数字输入数字输入框(自动校验范围)qty_min / qty_max / unit_price
slider滑块调整进度条滑块 + −/+ 按钮 + 当前值(可单点加减、可拖到最大值)qty_min / qty_max / unit_price
stepper加减器−/+ 步进器qty_min / qty_max / unit_price
fixed固定展示固定值(不可选)options
存量兼容:插件未声明 control 时,系统按 input_type 默认降级(qty → slider、fixed → fixed、select → select),旧产品无需重配。后台「添加产品」编辑器也可手动调整每个选项的输入方式、最小值 / 最大值 / 单价;数量型选项按 数量 × unit_price 实时参与计价。

八、自研 KVM 受控端对接

概述

自研受控端(kvm-agent,Go 实现)提供 KVM 虚拟机全生命周期管理 API,IDC 财务系统通过 kvm 插件对接,实现云服务器(VPS)自动化开通、续费、删除、启停、重置密码、重装系统、弹性升级及云主机控制面板。

鉴权签名

受控端接口使用 HMAC-SHA256 签名鉴权,请求头携带:

请求头说明
Yx-Key接入标识(与受控端 config.json 的 yx_key 一致)
Yx-Ts当前时间戳(秒)
Yx-Sign签名,算法见下
$body = json_encode($data);                 // 请求体
$signStr = $key . "\n" . $ts . "\n" . hash('sha256', $body);
$sign    = hash_hmac('sha256', $signStr, $secret);   // Yx-Sign

核心接口

接口说明
yx_node_info节点信息(状态/资源)
yx_os_list系统镜像列表(两级:系统类型 → 版本)
yx_vm_create创建虚拟机,返回 yx_vm_id / yx_ipv4 / yx_os_user / yx_passwd
yx_vm_info虚拟机详情
yx_vm_action电源操作(开机 / 关机 / 重启)
yx_vm_reinstall重装系统
yx_vm_resetpwd重置密码
yx_vm_upgrade弹性升级(CPU / 内存 / 带宽 / 系统盘)
yx_vm_delete删除虚拟机
插件配置:kvm 插件 config_params 提供受控端地址(yx_api_url)、接入标识(yx_key)、签名密钥(yx_secret)、默认系统镜像(os_name)、默认 SSH 账号(default_user),与受控端 config.json 保持一致。

API接口文档

IDC财务系统提供API接口,供第三方系统对接资源池,实现产品查询、订单创建、主机管理、账户查询等功能。

IDC财务系统API对接接口

IDC财务系统提供以下API接口,供第三方系统对接资源池,实现产品查询、订单创建、主机管理、账户查询等功能。

基础URL:http://your-domain.com/api 数据格式:JSON 字符编码:UTF-8 请求方式:GET / POST

认证方式

所有API接口都需要进行身份认证。用户需要在语信IDC财务系统的用户中心 → API密钥管理中创建API密钥,获取 app_keyapp_secret

注意:app_secret 只在创建时显示一次,请妥善保管。如果忘记了,请删除旧密钥并重新创建。

请求头参数:

参数名类型必填说明
X-App-KeystringAPI密钥的app_key
X-Timestampint当前时间戳(秒),与服务器时间差不能超过300秒
X-Signstring请求签名,详见签名规则

签名规则

为了保证接口调用的安全性,所有请求都需要进行签名验证。签名算法如下:

  1. 将所有请求参数(除 sign 外)按参数名的字母顺序升序排列
  2. 将排序后的参数拼接成 key1=value1&key2=value2&... 的格式
  3. 在字符串末尾拼接 &app_secret=你的app_secret
  4. 对最终字符串进行 MD5 哈希,得到32位小写签名
  5. 将签名作为 sign 参数传入

PHP签名示例代码:

function makeSign($params, $appSecret) {
    ksort($params);
    $signStr = '';
    foreach ($params as $k => $v) {
        $signStr .= $k . '=' . $v . '&';
    }
    $signStr .= 'app_secret=' . $appSecret;
    return md5($signStr);
}

返回格式

所有接口返回JSON格式数据:

{
  "code": 0,
  "msg": "操作成功",
  "data": { }
}
字段类型说明
codeint状态码,0表示成功,非0表示失败
msgstring提示信息
datamixed返回数据,可能是对象、数组或空数组

错误码说明

错误码说明解决方案
0请求成功-
40001缺少app_key请在请求头或参数中传入X-App-Key
40002缺少时间戳请在请求头或参数中传入X-Timestamp
40003缺少签名请在请求头或参数中传入X-Sign
40004API密钥不存在请检查app_key是否正确,或重新创建密钥
40005API密钥已禁用请在用户中心启用该密钥
40006签名验证失败请检查签名算法是否正确,参数是否完整
40007请求已过期时间戳与服务器时间差不能超过300秒
40008调用频率超限请稍后再试,或联系管理员提升配额
40301余额不足请先充值后再操作
40401产品不存在请检查产品ID是否正确
40402订单不存在请检查订单ID是否正确
40403主机不存在请检查主机ID是否正确

产品接口

产品列表 GET /api/product/list - 获取可购买的产品列表

参数名类型必填说明
pageint页码,默认1
limitint每页数量,默认10
typestring产品类型:host(虚拟主机)、server(云服务器)等
group_idint产品分组ID

产品详情 GET /api/product/detail - 获取单个产品的详细信息

参数名类型必填说明
idint产品ID

产品分组 GET /api/product/groups - 获取产品分组列表

订单接口

订单列表 GET /api/order/list - 获取当前用户的订单列表

订单详情 GET /api/order/detail - 获取单个订单的详细信息

创建订单(购买产品) POST /api/order/create - 创建订单并购买产品,系统会自动扣款并开通服务。先开通、后扣费,开通失败不扣款。

参数名类型必填说明
product_idint产品ID
durationstring购买周期:month(月付)、quarter(季付)、year(年付)
domainstring条件必填绑定域名,虚拟主机类型产品必填,支持一级域名、二级域名、泛域名
quantityint购买数量,默认1
主机状态说明:1 = 正常(已开通),5 = 开通中,6 = 开通失败(不扣款,订单保持未支付状态)

主机接口

主机列表 GET /api/host/list - 获取当前用户的主机列表

主机详情 GET /api/host/detail - 获取单个主机的详细信息,包括FTP、数据库等配置信息

主机操作(续费等) POST /api/host/action - 对主机进行操作,目前支持续费操作

参数名类型必填说明
idint主机ID
actstring操作类型:renew(续费)
durationstring续费必填续费周期:month(月付)、quarter(季付)、year(年付)

账户接口

用户信息 GET /api/account/info - 获取当前API密钥关联的用户信息

账户余额 GET /api/account/balance - 获取当前用户的账户余额

财务明细 GET /api/account/finance - 获取当前用户的财务明细记录

充值记录 GET /api/account/recharge - 获取当前用户的充值记录

九、数据库表结构

核心表

表前缀说明:系统支持自定义表前缀,安装时可填写,默认 yxidc_。以下表名中的 {prefix} 代表实际配置的表前缀,系统代码中不写死表前缀,全部使用数据库配置联动。
表名说明
{prefix}product产品表
{prefix}product_group产品分组表
{prefix}product_period产品周期定价表
{prefix}server_group上游分组表(对接第三方站点,选插件+API配置)
{prefix}host主机服务表
{prefix}order订单表
{prefix}order_item订单明细表
{prefix}user用户表
{prefix}plugin插件表
{prefix}template模板表
{prefix}update_history系统更新历史表
注意:宝塔节点表、短信验证码表等是插件自带的表,安装对应插件时通过插件的 install.sql 创建,不是系统核心表,表前缀同样跟随系统配置。

产品表结构

字段类型说明
idint产品ID
group_idint分组ID
plugin_idint关联插件ID(自营 / 对接插件)
server_group_idint上游分组ID(代理货源时关联,0=自营)
upstream_provider_idint上游供应商ID(对接第三方时)
upstream_product_idstring上游产品ID(对接第三方时,一键获取上游产品后自动填入)
namestring产品名称
typestring产品类型:host/vps/server/dedi/cdn
descriptiontext产品描述
configjson产品配置(弹性规格、默认镜像等;代理时可一键同步上游最低配置)
statusint状态:1启用,0停用
is_recommendint是否推荐
sortint排序
create_timeint创建时间
update_timeint更新时间

主机服务表结构

字段类型说明
idint服务ID
user_idint用户ID
product_idint产品ID
domainstring绑定域名
usernamestring用户名
passwordstring密码
server_group_idint上游分组ID(代理货源服务)
configjson服务配置(包含用户选择的参数;开通成功后系统回写 plugin_result,含上游资源ID/IP等)
statusint状态:1正常,5待开通,0停用
expire_timeint到期时间
create_timeint创建时间
update_timeint更新时间

产品分组表

字段类型说明
idint分组ID
namestring分组名称
typestring分组类型:host/vps/cdn
sortint排序
statusint状态
说明:产品分组选择类型后,添加产品时会根据分组类型自动过滤对应类型的插件,无需手动选择产品类型。

十、授权站开发者中心

概述

授权站提供开发者中心,开发者可以发布插件、模板、服务,通过销售获得收益。

开发者功能

  • 插件/模板发布:统一走 /developer/productAdd/add,分类联动选择模板/插件
  • 经营方式:发布时选择「自营」或「代理对接」,避免自营与对接产品混淆(自营=使用自己的受控端,对接=对接第三方系统/同系统API)
  • 源码上传:发布插件/模板时需要上传源码压缩包
  • 版本管理:支持多版本发布
  • 服务市场:开发者可发布服务(如运维、部署、定制开发),支持接单与交付流程(/developer/service
  • 收益管理:查看销售收益、余额、提现
  • 手续费设置:后台可配置销售手续费和提现手续费

手续费机制

后台 /admin/developer/fee 可配置:

  • 销售手续费:用户购买插件/模板时,平台扣除的手续费比例
  • 提现手续费:开发者申请提现时,平台扣除的手续费比例

计算示例

(销售手续费20%,提现手续费3%):

  • 插件售价:100元
  • 扣除销售手续费20%:到余额80元
  • 申请提现扣除3%:实际到手77.6元

发布页实际到手计算

开发者发布插件/模板时,价格输入框下方会显示实际到手金额模拟计算:

  • 输入售价
  • 自动计算扣除销售手续费后的余额
  • 自动计算扣除提现手续费后的实际到手
  • 显示计算公式说明

市场展示

授权站前台 /market/plugin/market/template/market/service 展示所有已审核通过的插件、模板和服务:

  • 显示开发者用户名与身份徽章(开发者/专业版/企业版等)
  • 显示发布日期
  • 点击开发者可进入开发者主页,查看该开发者发布的所有插件/模板
  • 市场按系统分类展示(IDC 财务系统 / KVM 受控端),每页最多 8 个,超出自动分页

购买与下载

  • 授权站不提供在线下载窗口,防止资源被复制盗用;用户购买插件/模板后,在自购的 IDC 财务系统后台「系统商店」中校验授权并下载安装/更新
  • 安装包 / 更新包 / 插件 / 模板下载均带授权校验(需有效授权码),防止直连下载链接被盗链
  • 授权站本地已安装系统更新通道不受影响(演示站等已授权站点正常校验更新)

管理员审核

授权站后台 /admin/developer/product 审核开发者发布的插件/模板:

  • 显示插件/模板类型(插件/模板)
  • 显示开发者上传的源码压缩包,可下载审核
  • 审核通过后前台展示
  • 可编辑、删除、上下架

十一、常见问题

1. 如何开发一个新插件?

  1. plugins/plugins/ 目录下创建插件目录
  2. 创建 plugin.json 配置文件
  3. 创建插件主类,实现 nodeAction(静态风格)或 hostAction(实例风格,推荐)方法
  4. 如需控制面板:虚拟主机实现 panelAction,云主机在 plugin.json 声明 panel
  5. 在后台插件管理中安装并启用插件

2. 插件的可配置参数如何使用?

plugin.json 中定义 config_params,设置 user_selectabletrue 的参数可以让用户在购买时选择。用户选择的值会保存在服务配置中,开通服务时传递给插件。

3. 如何对接第三方系统?

  1. 安装对应的对接插件(插件适配系统,遵循 PluginManager 契约,系统核心不因第三方改动)
  2. 后台「产品系统 → 上游分组」新建分组,选择对接插件并填写该站点的 API 地址 / Key / Secret
  3. 点击「测试节点」验证连通性
  4. 「产品管理 → 添加产品」选择所属分组、货源方式(代理)与上游分组,通过「一键获取」拉取上游产品/镜像/弹性配置并联动填入

4. 插件开通服务失败怎么办?

  1. 检查插件配置是否正确
  2. 检查上游分组节点连接是否正常(后台上游分组中测试节点)
  3. 查看错误日志,定位问题
  4. 开通失败不会扣除用户余额(先开通,后扣费)
  5. 开通失败的订单和服务支持用户删除
  6. 联系插件开发者获取支持

5. 宝塔面板地址需要包含安全目录吗?

需要。宝塔面板V13.0.0及以上版本,API调用时面板地址需要包含安全目录(如 https://ip:port/安全目录)。测试连接时也需要填写完整的带安全目录的地址。

6. 开发者如何发布插件/模板?

  1. 在授权站注册账号,申请成为开发者
  2. 进入开发者中心,点击「发布产品」
  3. 选择产品类型(插件/模板/服务),选择分类与经营方式(自营 / 代理对接)
  4. 填写产品信息,上传源码压缩包
  5. 提交审核,等待管理员审核通过
  6. 审核通过后前台展示,用户购买后在系统后台「系统商店」下载安装

7. 云主机控制面板如何扩展?

在插件 plugin.json 的 panel 中声明 enabled/title/template/tabs,系统自动渲染面板框架;面板数据统一走 POST /user/service/panelApi(host_id/module/action/params),插件实现对应模块操作即可。资源定位依赖 host.config.plugin_result.id(开通时受控端回传)。

更新日志

V1.8 (2026-09-09)

  • 新增「对接插件选项契约(listOptions)」:弹性配置选项的 control 输入方式(select/radio/number/slider/stepper/fixed)声明规范、qty_min/qty_max/unit_price 字段说明、存量兼容降级规则
  • 更新上游分组章节:补充 listOptions 返回结构示例(host/min_config/skip_options/groups)

V1.7 (2026-09-08)

  • 新增「上游分组与第三方系统对接」章节:自营/代理、配置流程、测试节点、一键获取上游配置
  • 新增「自研 KVM 受控端对接」章节:鉴权签名、核心接口表、kvm 插件配置
  • 更新插件开发指南:两种插件风格(静态 nodeAction / 实例 hostAction)、panel 声明、upgrade/login 操作、plugin_result 回写
  • 更新目录结构:模板迁移至 view/template/,附迁移说明
  • 更新控制面板章节:新增云主机(KVM)控制面板(panel 声明 + panelApi 机制)
  • 更新数据库表结构:新增 server_group 表、产品/主机上游字段
  • 更新授权站开发者中心:自营/代理发布、服务市场、系统商店下载安装、防直连授权校验
  • 更新常见问题:对接第三方系统、云主机控制面板扩展

V1.5 (2026-09-03)

  • 新增IDC财务系统API对接接口完整文档(认证方式、签名规则、错误码、产品/订单/主机/账户接口)
  • API接口文档分为两大部分:授权中心接口 + IDC财务系统API对接接口
  • 新增侧边栏API对接子导航,方便快速定位
  • 更新检测系统更新接口的最新版本号示例(V1.0.45.2)
  • 更新系统特性描述(新增API对接功能)

V1.3 (2026-09-02)

  • 新增虚拟主机控制面板开发指南
  • 新增系统在线更新说明(三通道版本、全量更新包、漏更检测)
  • 新增授权站开发者中心说明(手续费机制、实际到手计算、市场展示)
  • 新增管理员管理功能说明
  • 新增默认版本功能说明
  • 更新宝塔插件可配置参数(支持动态获取PHP版本)
  • 更新插件结构(新增config.html配置页面、panel_actions声明)
  • 更新插件主类方法(新增testConnection、panelAction、getLoginInfo)
  • 更新目录结构(新增api目录、version.php配置)
  • 更新数据库表结构(新增update_history表、产品分组type字段)
  • 更新API接口文档(新增检测系统更新接口)
  • 新增常见问题(宝塔安全目录、在线更新、漏更处理、开发者发布)

V1.0.1 (2026-08-31)

  • 新增插件可配置参数说明
  • 新增用户可选择参数功能说明
  • 优化插件开发指南
  • 更新数据库表结构说明
  • 新增常见问题

V1.0.0 (2026-08-25)

  • 初始版本发布
  • 包含系统介绍、快速开始、插件开发指南
  • 包含模板开发指南、API接口文档
  • 包含数据库表结构说明
基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-09-14 16:27:12 HTTP/2.0 GET : https://auto.sferm.cn/developer-docs
  2. 运行时间 : 0.076716s [ 吞吐率:13.04req/s ] 内存消耗:5,222.26kb 文件加载:148
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=783f9c143e4ce08cd26219b2e9955770
  1. /www/wwwroot/auto/public/index.php ( 0.79 KB )
  2. /www/wwwroot/auto/vendor/autoload.php ( 0.75 KB )
  3. /www/wwwroot/auto/vendor/composer/autoload_real.php ( 1.63 KB )
  4. /www/wwwroot/auto/vendor/composer/platform_check.php ( 0.90 KB )
  5. /www/wwwroot/auto/vendor/composer/ClassLoader.php ( 15.99 KB )
  6. /www/wwwroot/auto/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /www/wwwroot/auto/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /www/wwwroot/auto/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /www/wwwroot/auto/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /www/wwwroot/auto/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /www/wwwroot/auto/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /www/wwwroot/auto/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /www/wwwroot/auto/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /www/wwwroot/auto/vendor/symfony/polyfill-mbstring/bootstrap.php ( 0.35 KB )
  15. /www/wwwroot/auto/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.81 KB )
  16. /www/wwwroot/auto/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.60 KB )
  17. /www/wwwroot/auto/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /www/wwwroot/auto/vendor/symfony/var-dumper/VarDumper.php ( 4.23 KB )
  19. /www/wwwroot/auto/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /www/wwwroot/auto/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /www/wwwroot/auto/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /www/wwwroot/auto/app/provider.php ( 0.19 KB )
  23. /www/wwwroot/auto/vendor/topthink/framework/src/think/Http.php ( 6.22 KB )
  24. /www/wwwroot/auto/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /www/wwwroot/auto/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /www/wwwroot/auto/app/common.php ( 61.09 KB )
  27. /www/wwwroot/auto/vendor/topthink/framework/src/helper.php ( 18.77 KB )
  28. /www/wwwroot/auto/vendor/topthink/framework/src/think/Config.php ( 5.93 KB )
  29. /www/wwwroot/auto/config/app.php ( 1.15 KB )
  30. /www/wwwroot/auto/config/cache.php ( 0.78 KB )
  31. /www/wwwroot/auto/config/console.php ( 0.23 KB )
  32. /www/wwwroot/auto/config/cookie.php ( 0.56 KB )
  33. /www/wwwroot/auto/config/database.php ( 2.13 KB )
  34. /www/wwwroot/auto/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /www/wwwroot/auto/config/filesystem.php ( 0.61 KB )
  36. /www/wwwroot/auto/config/lang.php ( 0.91 KB )
  37. /www/wwwroot/auto/config/log.php ( 1.35 KB )
  38. /www/wwwroot/auto/config/middleware.php ( 0.19 KB )
  39. /www/wwwroot/auto/config/route.php ( 1.89 KB )
  40. /www/wwwroot/auto/config/session.php ( 0.57 KB )
  41. /www/wwwroot/auto/config/trace.php ( 0.34 KB )
  42. /www/wwwroot/auto/config/view.php ( 0.82 KB )
  43. /www/wwwroot/auto/app/event.php ( 0.25 KB )
  44. /www/wwwroot/auto/vendor/topthink/framework/src/think/Event.php ( 7.77 KB )
  45. /www/wwwroot/auto/app/service.php ( 0.13 KB )
  46. /www/wwwroot/auto/app/AppService.php ( 0.77 KB )
  47. /www/wwwroot/auto/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /www/wwwroot/auto/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /www/wwwroot/auto/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /www/wwwroot/auto/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /www/wwwroot/auto/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /www/wwwroot/auto/vendor/services.php ( 0.18 KB )
  53. /www/wwwroot/auto/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /www/wwwroot/auto/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /www/wwwroot/auto/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /www/wwwroot/auto/vendor/topthink/think-multi-app/src/Service.php ( 1.08 KB )
  57. /www/wwwroot/auto/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  58. /www/wwwroot/auto/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  59. /www/wwwroot/auto/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  60. /www/wwwroot/auto/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  61. /www/wwwroot/auto/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  62. /www/wwwroot/auto/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  63. /www/wwwroot/auto/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  64. /www/wwwroot/auto/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  65. /www/wwwroot/auto/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  66. /www/wwwroot/auto/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  67. /www/wwwroot/auto/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  68. /www/wwwroot/auto/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  69. /www/wwwroot/auto/vendor/topthink/think-helper/src/helper/Arr.php ( 17.45 KB )
  70. /www/wwwroot/auto/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  71. /www/wwwroot/auto/vendor/topthink/framework/src/think/cache/Driver.php ( 9.02 KB )
  72. /www/wwwroot/auto/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  73. /www/wwwroot/auto/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.73 KB )
  74. /www/wwwroot/auto/vendor/topthink/think-orm/src/db/PDOConnection.php ( 53.74 KB )
  75. /www/wwwroot/auto/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  76. /www/wwwroot/auto/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  77. /www/wwwroot/auto/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  78. /www/wwwroot/auto/vendor/topthink/think-orm/src/db/Builder.php ( 24.07 KB )
  79. /www/wwwroot/auto/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  80. /www/wwwroot/auto/vendor/topthink/think-orm/src/db/Query.php ( 15.97 KB )
  81. /www/wwwroot/auto/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  82. /www/wwwroot/auto/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  83. /www/wwwroot/auto/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  84. /www/wwwroot/auto/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  85. /www/wwwroot/auto/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  86. /www/wwwroot/auto/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  87. /www/wwwroot/auto/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  88. /www/wwwroot/auto/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  89. /www/wwwroot/auto/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  90. /www/wwwroot/auto/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  91. /www/wwwroot/auto/vendor/topthink/framework/src/think/log/driver/File.php ( 6.10 KB )
  92. /www/wwwroot/auto/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  93. /www/wwwroot/auto/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  94. /www/wwwroot/auto/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  95. /www/wwwroot/auto/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  96. /www/wwwroot/auto/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  97. /www/wwwroot/auto/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  98. /www/wwwroot/auto/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  99. /www/wwwroot/auto/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.20 KB )
  100. /www/wwwroot/auto/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.75 KB )
  101. /www/wwwroot/auto/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  102. /www/wwwroot/auto/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  103. /www/wwwroot/auto/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.30 KB )
  104. /www/wwwroot/auto/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  105. /www/wwwroot/auto/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  106. /www/wwwroot/auto/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  107. /www/wwwroot/auto/vendor/topthink/framework/src/think/Console.php ( 22.98 KB )
  108. /www/wwwroot/auto/app/Request.php ( 0.09 KB )
  109. /www/wwwroot/auto/vendor/topthink/framework/src/think/Request.php ( 54.64 KB )
  110. /www/wwwroot/auto/vendor/topthink/framework/src/think/traits/UrlHandler.php ( 6.05 KB )
  111. /www/wwwroot/auto/vendor/topthink/framework/src/think/traits/DomainHandler.php ( 5.49 KB )
  112. /www/wwwroot/auto/vendor/topthink/framework/src/think/traits/HttpMethodHandler.php ( 4.74 KB )
  113. /www/wwwroot/auto/app/middleware.php ( 0.26 KB )
  114. /www/wwwroot/auto/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  115. /www/wwwroot/auto/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  116. /www/wwwroot/auto/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  117. /www/wwwroot/auto/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  118. /www/wwwroot/auto/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  119. /www/wwwroot/auto/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  120. /www/wwwroot/auto/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  121. /www/wwwroot/auto/vendor/topthink/think-multi-app/src/MultiApp.php ( 7.06 KB )
  122. /www/wwwroot/auto/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  123. /www/wwwroot/auto/vendor/topthink/framework/src/think/route/RuleName.php ( 5.74 KB )
  124. /www/wwwroot/auto/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  125. /www/wwwroot/auto/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.41 KB )
  126. /www/wwwroot/auto/vendor/topthink/framework/src/think/route/Rule.php ( 27.49 KB )
  127. /www/wwwroot/auto/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  128. /www/wwwroot/auto/app/home/route/app.php ( 1.18 KB )
  129. /www/wwwroot/auto/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  130. /www/wwwroot/auto/app/home/route/home.php ( 2.04 KB )
  131. /www/wwwroot/auto/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  132. /www/wwwroot/auto/vendor/topthink/framework/src/think/route/Dispatch.php ( 11.32 KB )
  133. /www/wwwroot/auto/app/home/controller/Index.php ( 6.51 KB )
  134. /www/wwwroot/auto/app/BaseController.php ( 3.55 KB )
  135. /www/wwwroot/auto/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  136. /www/wwwroot/auto/vendor/topthink/framework/src/think/facade/Session.php ( 1.79 KB )
  137. /www/wwwroot/auto/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  138. /www/wwwroot/auto/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  139. /www/wwwroot/auto/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  140. /www/wwwroot/auto/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  141. /www/wwwroot/auto/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  142. /www/wwwroot/auto/vendor/topthink/think-template/src/template/taglib/Cx.php ( 24.23 KB )
  143. /www/wwwroot/auto/vendor/topthink/think-template/src/template/TagLib.php ( 12.11 KB )
  144. /www/wwwroot/auto/runtime/home/temp/1d09cee581a5c26f3c99eb14220b9177.php ( 94.01 KB )
  145. /www/wwwroot/auto/vendor/topthink/framework/src/think/Response.php ( 9.07 KB )
  146. /www/wwwroot/auto/vendor/topthink/framework/src/think/response/Html.php ( 0.97 KB )
  147. /www/wwwroot/auto/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  148. /www/wwwroot/auto/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001258s ] mysql:host=127.0.0.1;port=3306;dbname=154_94_224_219;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `site_setting` [ RunTime:0.001236s ]
  3. SELECT `v` FROM `site_setting` WHERE `k` = 'app_debug' LIMIT 1 [ RunTime:0.000425s ]
  4. SELECT `v` FROM `site_setting` WHERE `k` = 'site_name' LIMIT 1 [ RunTime:0.000684s ]
  5. SELECT `v` FROM `site_setting` WHERE `k` = 'beta_enabled' LIMIT 1 [ RunTime:0.000709s ]
  6. SELECT `v` FROM `site_setting` WHERE `k` = 'beta_end' LIMIT 1 [ RunTime:0.000356s ]
  7. SHOW FULL COLUMNS FROM `license_version` [ RunTime:0.000974s ]
  8. SELECT `price` FROM `license_version` WHERE `status` = 1 AND `code` = 'pro' LIMIT 1 [ RunTime:0.000485s ]
  9. SELECT `v` FROM `site_setting` WHERE `k` = 'footer_icp' LIMIT 1 [ RunTime:0.000332s ]
  10. SELECT `v` FROM `site_setting` WHERE `k` = 'footer_police_icp' LIMIT 1 [ RunTime:0.000280s ]
  11. SELECT `v` FROM `site_setting` WHERE `k` = 'footer_copyright' LIMIT 1 [ RunTime:0.000230s ]
  12. SELECT `v` FROM `site_setting` WHERE `k` = 'footer_contact' LIMIT 1 [ RunTime:0.000179s ]
  13. SELECT `v` FROM `site_setting` WHERE `k` = 'footer_sponsor_show' LIMIT 1 [ RunTime:0.000222s ]
  14. SELECT `v` FROM `site_setting` WHERE `k` = 'footer_sponsor_id' LIMIT 1 [ RunTime:0.000200s ]
  15. SHOW FULL COLUMNS FROM `sponsor` [ RunTime:0.000564s ]
  16. SELECT * FROM `sponsor` WHERE `id` = 2 AND `status` = 1 LIMIT 1 [ RunTime:0.000406s ]
0.080818s