乐于分享
好东西不私藏

Claude Code 插件开发入门:一份给开发者的实践指南

Claude Code 插件开发入门:一份给开发者的实践指南

适合人群:熟悉命令行操作,想要扩展 Claude Code 功能的开发者 

前几天打开电脑,本来想写点东西,却发现自己不知道写什么好了。就想着自己是不是搞一个插件,可以让AI帮我时候搜索网上最新的咨询呢?那就动手写。不过反复用AI调试了几次,AI总是不能解决我的问题,浪费了我大量的调用次数。本身插件代码量不大,自己一番就找到了问题,所以借助官方文档总结一下。


一、什么是 Claude Code 插件?

Claude Code 插件是一种可打包、可分发的扩展包,让你能为 Claude Code 添加自定义的:

  • Commands(命令):自定义斜杠命令,如 /collect/deploy
  • Skills(技能):Claude 根据上下文自动调用的能力
  • Agents(智能体):专注特定任务的子智能体
  • Hooks(钩子):在特定事件(保存文件、会话结束等)时自动执行的脚本
  • MCP Servers:集成外部 API 和工具

与直接在 .claude/ 目录下配置不同,插件可以跨项目复用,并通过 Marketplace 分享给他人。


二、插件 vs 独立配置

方式
适用场景
命令格式
独立配置(.claude/ 目录)
单项目、个人用途、快速实验
/hello
插件(Plugin)
团队共享、跨项目复用、发布到社区
/my-plugin:hello

建议:先用独立配置快速验证想法,稳定后再打包成插件分发。


三、插件目录结构

my-plugin/├── .claude-plugin/│   └── plugin.json          # 插件清单(必须)├── commands/                # 命令文件(.md 格式)│   └── collect.md├── skills/                  # 技能目录│   └── code-review/│       └── SKILL.md├── agents/                  # 自定义智能体│   └── reviewer.md├── hooks/                   # 事件钩子│   └── hooks.json└── .mcp.json                # MCP 服务器配置(可选)

⚠️ 注意:commands/skills/ 等目录必须放在插件根目录,不能放到 .claude-plugin/ 里面。


四、快速上手:创建第一个插件

第 1 步:创建目录结构

mkdir -p my-first-plugin/.claude-pluginmkdir -p my-first-plugin/commands

第 2 步:创建插件清单 plugin.json

{  "name": "my-first-plugin",  "version": "1.0.0",  "description": "我的第一个 Claude Code 插件",  "author": {    "name": "Your Name"  }}

字段说明:

字段
说明
name
插件唯一标识,也是命令的命名空间前缀
version
版本号,省略则用 git commit SHA
description
在插件管理器中展示的描述
author
必须是对象格式,不能是字符串

第 3 步:创建命令文件

命令文件是普通 Markdown 文件,文件名即命令名。

commands/hello.md

向用户打招呼,问候 $ARGUMENTS 并询问今天有什么需要帮助的。

$ARGUMENTS 是占位符,会被替换为用户在命令后输入的内容。

例如输入 /my-first-plugin:hello 张三,Claude 就会向"张三"打招呼。

第 4 步:本地测试

# 用 --plugin-dir 加载本地插件,无需安装claude --plugin-dir ./my-first-plugin

启动后在 Claude Code 中运行:

/my-first-plugin:hello 张三

修改插件内容后,无需重启,直接运行 /reload-plugins 热更新。


五、plugin.json 常见字段格式

这是最容易出错的地方,以下是正确示例:

{  "name""tech-content-collector",  "version""1.0.0",  "description""收集和整理技术内容",  "author": {    "name""Lei Fu",    "email""lei@example.com"  },  "commands": ["./commands/"],  "skills": ["./skills/"],  "homepage""https://github.com/yourname/your-plugin"}

常见错误:

// ❌ author 不能是字符串"author": "Lei Fu"// ✅ author 必须是对象"author": { "name": "Lei Fu" }// ❌ commands 不能是对象数组"commands": [  { "name": "collect", "description": "..." }]// ✅ commands 必须是路径数组"commands": ["./commands/"]

六、添加 Skills(技能)

Skills 与 Commands 的区别:Commands 由用户主动调用,Skills 由 Claude 根据上下文自动调用

skills/code-review/SKILL.md

---description: 审查代码质量和潜在问题。当用户提交代码审查请求或分析代码质量时使用。---审查代码时,请检查以下方面:1. 代码结构和组织2. 错误处理3. 安全隐患4. 测试覆盖率提供具体的改进建议和示例代码。

description 字段告诉 Claude 何时应该调用这个技能,写得越准确,自动触发越精准。


七、添加 Hooks(钩子)

Hooks 让你在特定事件发生时自动执行脚本。

hooks/hooks.json

{  "hooks": {    "PostToolUse": [      {        "matcher": "Write|Edit",        "hooks": [          {            "type": "command",            "command": "echo '文件已修改' >> /tmp/claude-log.txt"          }        ]      }    ]  }}

常用的 Hook 事件:

事件
触发时机
PostToolUse
Claude 使用工具后
SessionStart
会话开始时
Stop
会话结束时

八、本地 Marketplace 安装

如果想像正式插件一样用 /plugin install 安装,需要创建本地 Marketplace。

目录结构

my-marketplace/├── .claude-plugin/│   └── marketplace.json     # Marketplace 描述文件└── my-first-plugin/         # 插件目录    ├── .claude-plugin/    │   └── plugin.json    └── commands/

marketplace.json

{  "name": "my-marketplace",  "owner": {    "name": "Lei Fu"  },  "plugins": [    {      "name": "my-first-plugin",      "source": "./my-first-plugin"    }  ]}

添加并安装

# 方式一:在 Claude Code 内添加/plugin marketplace add /path/to/my-marketplace# 方式二:命令行添加claude plugin marketplace add /path/to/my-marketplace# 安装插件(格式:插件名@marketplace名)/plugin install my-first-plugin@my-marketplace

九、开发调试技巧

# 加载多个插件同时测试claude --plugin-dir ./plugin-one --plugin-dir ./plugin-two# 热更新(修改文件后无需重启)/reload-plugins# 查看已配置的 marketplace/plugin marketplace list# 验证插件结构(需要最新版 Claude Code)claude plugin validate ./my-plugin

如果安装失败,先检查:

  1. .claude-plugin/plugin.json 是否存在且格式正确
  2. author 是否为对象格式
  3. commands / skills 是否为路径字符串数组
  4. 各目录是否在插件根目录(不是 .claude-plugin/ 内)

十、发布插件

准备好对外分发时:

  1. 将插件推送到 GitHub 仓库
  2. 用户通过 claude plugin marketplace add yourname/your-repo 添加你的 marketplace
  3. 然后 /plugin install plugin-name@your-marketplace 安装

如果想提交到 Anthropic 官方 Marketplace,访问 claude.ai/settings/plugins/submit 提交审核。


十一、常见陷阱与注意事项

根据开发者社区的反馈和本文档的核心要点,请特别留意以下几个容易出错的地方,可以避免 90% 的常见问题:

  1. plugin.json 的字段格式是关键

    • author 字段:必须是一个 JSON 对象,例如 {"name": "Your Name"}。绝对不能是 "Your Name" 这样的字符串。
    • commands 和 skills 字段:必须是路径数组,指向包含相应文件的目录,例如 ["./commands/"]。不能是包含命令或技能详细定义的对象数组。
  2. 严格遵守目录结构

    • commands/skills/agents/ 等功能目录必须与 .claude-plugin 目录平级,位于插件的根目录下。
    • 切勿将这些功能目录放在 .claude-plugin/ 文件夹内部。
  3. 理解命令的命名空间

    • 通过插件加载的命令,在调用时必须加上插件名作为前缀,格式为 /插件名:命令名(例如 /my-first-plugin:hello)。
    • 这与在项目本地 .claude/ 目录中定义的普通命令(直接使用 /hello)不同。

预先检查这几点能大幅提升插件开发的顺畅度。


十二、总结

步骤
要点
创建结构
.claude-plugin/plugin.json
 + 各功能目录
编写清单
author
 必须是对象,commands 必须是路径数组
本地测试
claude --plugin-dir ./my-plugin
热更新
/reload-plugins
分发
创建 Marketplace,用户添加后安装

十三、进阶主题探讨

本章节的内容主要基于社区实践和对插件架构的推测,因为关于这些高级主题的官方文档目前较为缺乏。请在实践中带着探索的心态使用,并以官方未来的更新为准。

1. Agents vs. Skills 的深度解析

你可能已经注意到,除了 Skills,还有 Agents。它们之间有什么区别?

  • Skill(技能):是一个工具。它定义了“如何做”一个特定的、原子化的任务。例如,一个 code-review 技能提供了代码审查的具体步骤和标准。它本身没有决策能力,等待被 Claude 主动调用。
  • Agent(智能体):是一个执行者角色。它定义了“做什么”以及“以什么身份去做”。Agent 更侧重于设定一个高层次的目标、工作流程或个性(Persona)。它可以拥有和协调多个 Skills 来完成一个复杂的、多步骤的任务。

举个例子,一个 Agent 的定义文件 agents/reviewer.md 可能看起来像这样:

---name: Code Reviewer Agentdescription: 一个专门负责代码审查的智能体。当被激活时,它会遵循严格的审查流程,并使用 code-review 技能来分析代码。---# 角色设定你是一个经验丰富的代码审查专家。你的目标是保证代码库的质量、可读性和安全性。# 工作流程1.  **理解需求**:首先,向用户询问本次代码提交的背景和目的。2.  **执行审查**:调用 `code-review` 技能来分析代码。3.  **总结报告**:基于技能的输出,整理一份清晰、完整的审查报告,包括优点、问题和修改建议。4.  **提供示例**:对关键的修改建议,提供具体的代码示例。

总结:你可以把 Agent 看作一个“项目经理”或“专家角色”,而 Skill 是他手边的“工具箱”。

2. MCP Servers: 集成外部 API (推测性示例)

MCP Servers 和 .mcp.json 文件是插件系统中最神秘也最强大的部分,它被认为是连接外部 API 和工具的桥梁。

⚠️ 免责声明: 以下关于 .mcp.json 的内容是纯粹的推测,基于对类似插件系统的分析。官方并未提供相关文档,其真实结构和用法可能存在巨大差异。

我们推测 .mcp.json 可能用于定义一个本地的 API 网关,将外部服务映射成 Claude Code 可以调用的内部工具。

一个假设的.mcp.json 可能如下所示:

{  // 定义该 MCP 服务的命名空间  "namespace""external_apis",  // 列出所有可用的外部服务  "services": [    {      // 服务名称,用于在 Claude Code 中调用      "name""get_weather",      // 服务的描述,帮助 Claude 理解其功能      "description""获取指定城市的实时天气",      // 定义 API 的具体细节      "endpoint": {        // 外部 API 的 URL,使用 {city} 作为参数占位符        "url""https://api.weather.com/v1/current?city={city}",        // HTTP 请求方法        "method""GET",        // 定义参数        "parameters": [          {            "name""city",            "in""path"// 表示参数在 URL 路径中            "description""The city to get the weather for",            "required"true,            "schema": {              "type""string"            }          }        ],        // 如果 API 需要认证,可以在这里配置        "authentication": {          "type""apiKey",          "name""X-API-Key",          "in""header",          // 密钥可以引用环境变量,避免硬编码          "value""${WEATHER_API_KEY}"        }      }    }  ]}

如果这个推测成立,当你对 Claude 说“帮我查一下北京的天气”时,它可能会找到 get_weather 这个服务,并调用对应的外部 API。

3. 更复杂的参数处理

内置的 $ARGUMENTS 变量虽然简单,但当命令需要多个、可选或带标志的参数时,就显得力不从心。由于没有发现官方支持的命名参数语法,最佳实践是在你的命令脚本内部自行解析。

示例:创建一个 /deploy 命令,支持指定环境(--env)和强制执行(--force)。

commands/deploy.md:

```shell#!/bin/bash# 默认值ENVIRONMENT="staging"FORCE=false# 解析命令行参数while [[ "$#" -gt 0 ]]; do    case $1 in        --env) ENVIRONMENT="$2"shift ;;        --force) FORCE=true ;;        *) echo "未知参数: $1"exit 1 ;;    esac    shiftdoneecho "准备部署到环境: $ENVIRONMENT"if [ "$FORCE" = true ]; then    echo "执行强制部署..."    # ./deploy_script.sh --force --env $ENVIRONMENTelse    echo "执行标准部署..."    # ./deploy_script.sh --env $ENVIRONMENTfiecho "部署完成。"```

使用方法:

/my-plugin:deploy --env production --force

通过在命令脚本顶部添加一小段 shell 解析逻辑,你可以轻松实现媲美原生 CLI 工具的参数灵活性。

4. Hooks 的进一步探索

教程中提到了 PostToolUse 等事件。关于 Hooks,还有一些值得探索的方向:

  • 更精确的 matcher:除了 Write|Edit,是否可以匹配其他工具名称,例如 RunShellCommand 或者你自定义的命令?这需要实验来验证。
  • 上下文变量:当一个 Hook 被触发时,Claude Code 很可能会通过环境变量向脚本传递上下文信息。例如,当 PostToolUse 匹配 Write 时,哪个文件被写入了?内容是什么?

你可以创建一个简单的 Hook 来探测试图传递了哪些环境变量:

hooks/hooks.json:

{  "hooks": {    "PostToolUse": [      {        "matcher": "Write",        "hooks": [          {            "type": "command",            "command": "env | grep CLAUDE_ > /tmp/claude_hook_env.log"          }        ]      }    ]  }}

执行一次文件写入操作后,检查 /tmp/claude_hook_env.log 文件的内容,你可能会发现类似 CLAUDE_TOOL_INPUT_FILE_PATH 或 CLAUDE_SESSION_ID 这样的宝贵信息,从而让你的 Hook 能够实现更强大的自动化。

完整官方文档:code.claude.com/docs/en/plugins

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-05-11 12:48:59 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/601737.html
  2. 运行时间 : 0.106323s [ 吞吐率:9.41req/s ] 内存消耗:4,612.06kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=1de7f27782adf3f1f6f45dcb4106ddb4
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000670s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000729s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000317s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000280s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000521s ]
  6. SELECT * FROM `set` [ RunTime:0.000195s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000573s ]
  8. SELECT * FROM `article` WHERE `id` = 601737 LIMIT 1 [ RunTime:0.000457s ]
  9. UPDATE `article` SET `lasttime` = 1778474939 WHERE `id` = 601737 [ RunTime:0.021983s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000408s ]
  11. SELECT * FROM `article` WHERE `id` < 601737 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000593s ]
  12. SELECT * FROM `article` WHERE `id` > 601737 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000415s ]
  13. SELECT * FROM `article` WHERE `id` < 601737 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000721s ]
  14. SELECT * FROM `article` WHERE `id` < 601737 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000701s ]
  15. SELECT * FROM `article` WHERE `id` < 601737 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000628s ]
0.108405s