当前位置:首页>学习笔记>Claude Code 学习笔记之四:Claude Code 扩展层的设计哲学

Claude Code 学习笔记之四:Claude Code 扩展层的设计哲学

  • 2026-05-04 10:11:54
Claude Code 学习笔记之四:Claude Code 扩展层的设计哲学

笔者在 SAP 产品开发领域已经工作了 19 年,详见笔者这篇文章:

即将进入在 SAP 工作的第 19 个年头

在这 19 年里,我对 SAP 产品的 Extensibility 设计也有一些自己的心得,写成了下面这些文章:

最近在系统学习 Claude Code,把学习心得写成了一个系列,这个系列过去的文章:

今天的文章聊一聊 Claude Code 的 Extensibility 设计思路和笔者的一些个人理解。

Claude Code 本身已经内置了强大的文件操作、搜索、执行和网络访问能力,这些内置工具覆盖了大部分日常开发任务。

但在实际项目中,我们总会遇到一些个性化的需求:比如希望 Claude 记住项目的特定约定、连接到外部服务、或者自动化某些重复性工作等等。

这就是 Claude Code 扩展层存在的意义。

本文系统介绍 Claude Code 提供的几种扩展机制,说清楚它们各自解决什么问题,以及什么时候该用哪个。

全文 8600 字,纯手工撰写,预计阅读时间 20 分钟。

扩展层的全景视图

Claude Code 的扩展能力可以插入到 agentic loop 的不同环节:

  • CLAUDE.md
     - 持久化的上下文,每次会话都会自动加载
  • Skills
     - 可复用的知识库和可调用的工作流
  • MCP (Model Context Protocol)
     - 连接外部服务和工具的标准协议
  • Subagents
     - 在隔离上下文中运行的独立工作单元
  • Agent teams
     - 多个独立会话通过共享任务列表和点对点消息进行协作
  • Hooks
     - 在生命周期事件触发时执行脚本、HTTP 请求、提示词或 subagent
  • Plugins
     - 将上述能力打包成可分发的单元

Skills 是这里面最灵活的扩展方式。

一个 skill 本质上就是一个 Markdown 文件,里面可以包含知识、工作流或者指令。

我们可以通过 /deploy 这样的命令手动调用,也可以让 Claude 在相关场景下自动加载。

Skills 既可以在当前会话中运行,也可以通过 subagents 在隔离的上下文中执行。

根据目标选择合适的机制

下面这张表格给大家总结了 Claude Code 不同扩展机制的定位和适用场景:

机制
作用
适用场景
举例
CLAUDE.md
每次会话都会加载的持久化上下文
项目约定、"总是做 X" 这类规则
"使用 pnpm 而不是 npm。提交前必须运行测试"
Skill
Claude 可以使用的指令、知识和工作流
可复用的内容、参考文档、可重复的任务
/deploy
 执行部署检查清单;包含 API 端点模式的 API 文档 skill
Subagent
返回摘要结果的隔离执行上下文
上下文隔离、并行任务、专门的工作单元
读取大量文件但只返回关键发现的研究任务
Agent teams
协调多个独立的 Claude Code 会话
并行研究、新功能开发、用竞争性假设进行调试
同时启动多个 reviewer 检查安全性、性能和测试
MCP
连接外部服务
需要外部数据或操作的场景
查询数据库、发送 Slack 消息、控制浏览器
Hook
由事件触发的脚本、HTTP 请求、提示词或 subagent
必须在每个匹配事件上运行的自动化
每次文件编辑后运行 ESLint

Plugins 是打包层。

一个 plugin 可以把 skills、hooks、subagents 和 MCP servers 打包成一个可安装的单元。

Plugin 中的 skills 会被命名空间化(比如 /my-plugin:review),这样多个 plugins 可以共存。

当我们想在多个代码仓库中复用同一套配置,或者通过 marketplace 分发给其他人时,就应该使用 plugins。

循序渐进地构建扩展体系

在实际使用 Claude Code 中,我们完全不需要急于求成,追求一上来就把所有扩展配置齐全。

上面介绍的每种扩展机制都有明确的触发信号。

笔者最近阅读了很多 Claude Code 相关的技术博客,发现很多人都推荐按照下面这个顺序逐步搭建属于自己的扩展机制:

触发信号
应该添加的机制
Claude 在同一个约定或命令上犯错两次
添加到 CLAUDE.md
为了开始某个任务,一直在重复输入相同的提示词
保存为用户可调用的 skill
第三次把同样的操作手册或多步骤流程粘贴到对话中
捕获为 skill
一直从 Claude 看不到的浏览器标签页复制数据
把那个系统作为 MCP server 接入
某个任务的输出充斥着我们不会再次引用的内容
通过 subagent 路由
想让某件事每次都自动发生而不用开口
写一个 hook
第二个代码仓库需要相同的配置
打包为 plugin

这些触发信号告诉了我们,应该在什么时候更新 Claude Code 已有的配置。

比如一个重复出现的错误或反复出现的 review 评论,应该编辑到 CLAUDE.md 里,而不是在对话中一次性纠正。

一个我们一直在手动调整的工作流,就是一个需要再次修订的 skill。

区分相似的机制

上面有些机制看起来很像,但还是有细微的区别。

下面是笔者的个人理解。

Skills 和 Subagents 解决不同的问题

  • Skills
     是可以加载到任何上下文中的可复用内容
  • Subagents
     是与主会话分离运行的隔离工作单元
维度
Skill
Subagent
本质
可复用的指令、知识或工作流
拥有自己上下文的隔离工作单元
核心优势
跨上下文共享内容
上下文隔离。工作在独立空间完成,只返回摘要信息
适合的场合
参考资料、可调用的工作流
需要读取大量文件的任务、并行工作、专门的工作单元

Skills 可以是参考型的,也可以是操作型的。

参考型 skills 提供 Claude 在整个会话中都会用到的知识,比如 API 风格指南。

操作型 skills 告诉 Claude 做某件具体的事,比如 /deploy 执行部署工作流。

subagent 的使用场景则是需要上下文隔离,或者当前上下文窗口快满了的时候。

Subagent 可能会读取几十个文件或进行大量搜索,但主会话只会收到一份摘要。

由于 subagent 的工作不会消耗主会话的上下文,这个优势在我们不需要中间过程保持可见的时候显得尤其有用。

自定义 subagents 可以有自己的指令,并且可以预加载 skills。

skills 和 subagent 可以组合使用。

一个 subagent 可以预加载特定的 skills(通过 skills: 字段)。一个 skill 可以使用 context: fork 在隔离上下文中运行。详见

CLAUDE.md 和 Skills

两者都存储指令,但加载方式和服务目标不同:

维度
CLAUDE.md
Skill
加载时机
每次会话自动加载
按需加载
是否可以包含文件
可以,通过 @path 导入
可以,通过 @path 导入
是否可以触发工作流
不能
可以,通过 /<name>
适合场景
"总是做 X" 的规则
参考资料、可调用的工作流

放到 CLAUDE.md 里 的内容是 Claude 应该始终知道的:编码约定、构建命令、项目结构、"绝不做 X" 的规则。

放到 skill 里 的内容是 Claude 有时需要的参考资料(API 文档、风格指南),或者用 /<name> 触发的工作流(deploy、review、release)。

最佳实践: 保持 CLAUDE.md 在 200 行以内。

如果这个文件的内容持续增长,可以考虑把一部分内容移到 skills 里,或者拆分到 .claude/rules/ 文件中。

CLAUDE.md、Rules 和 Skills

三者都存储指令,但加载方式不同:

维度
CLAUDE.md
.claude/rules/
Skill
加载时机
每次会话
每次会话,或者匹配文件被打开时
按需,当被调用或相关时
作用范围
整个项目
可以限定到文件路径
特定任务
适合场景
核心约定和构建命令
特定语言或目录的指南
参考资料、可重复的工作流

使用 CLAUDE.md 存储每个会话都需要的指令:构建命令、测试约定、项目架构。

使用 rules 保持 CLAUDE.md 专注。

带有 paths frontmatter 的 rules 只在 Claude 处理匹配文件时加载,节省上下文。

使用 skills 存储 Claude 只是偶尔需要的内容,比如 API 文档或者用 /<name> 触发的部署检查清单。

Subagent 和 Agent team

两者都能并行化工作,但架构不同:

维度
Subagent
Agent team
上下文
拥有自己的上下文窗口;结果返回给调用者
拥有自己的上下文窗口;完全独立
通信方式
只向主 agent 报告结果
团队成员直接相互发送消息
协调方式
主 agent 管理所有工作
通过共享任务列表自我协调
最适合
只关心结果的聚焦任务
需要讨论和协作的复杂工作
Token 成本
较低:结果被摘要后返回主上下文
较高:每个团队成员是一个独立的 Claude 实例

二者有各自最擅长的场合。

使用 subagent 做快速聚焦的工作:研究一个问题、验证一个说法、审查一个文件。Subagent 完成工作并返回摘要。主会话保持清爽。

使用 agent team 处理团队成员需要分享发现、相互质疑、独立协调的场景。Agent teams 最适合用于有竞争性假设的研究、并行代码审查,以及每个团队成员拥有独立部分的新功能开发。

如何选择: 如果我们正在运行并行的 subagents 但遇到上下文限制,或者 subagents 需要相互通信,agent teams 就是自然的下一步。

MCP 和 Skill

MCP 把 Claude 连接到外部服务。

Skills 扩展 Claude 知道的内容,包括如何有效使用这些服务。

维度
MCP
Skill
本质
连接外部服务的协议
知识、工作流和参考资料
提供什么
工具和数据访问
知识、工作流、参考资料
举例
Slack 集成、数据库查询、浏览器控制
代码审查清单、部署工作流、API 风格指南

这些机制解决不同的问题,而且配合得很好:

MCP 赋予 Claude Code 与外部系统交互的能力。没有 MCP,Claude Code 就无法查询数据库或发送 Slack 消息。

Skills 让 Claude Code 知道如何有效使用这些工具,加上可以用 /<name> 触发的工作流。

一个 skill 可能包含团队的数据库 schema 和查询模式,或者一个 /post-to-slack 工作流,里面有团队的消息格式规则。

比如 一个 MCP server 把 Claude Code 连接到数据库。一个 skill 教 Claude Code 数据模型、常见查询模式,以及不同任务应该使用哪些表。

Hook 和 Skill

Hook 在生命周期事件触发时执行;skill 被加载到上下文中供 Claude 应用。

维度
Hook
Skill
运行什么
shell 命令、HTTP 请求、LLM 提示词或 subagent
Claude 读取并遵循的指令
触发方式
生命周期事件,比如 PostToolUse 或 SessionStart
输入 /<name>,或者 Claude 根据描述匹配到当前任务
确定性
总是在事件发生时触发;触发是有保证的
Claude 解释指令;结果可能有变化
上下文成本
零,除非 hook 返回输出
描述在每次会话加载;完整内容在使用时加载
适合场景
编辑后的 linting、阻止不安全命令、日志记录、通知
需要推理的工作流、参考资料、多步骤任务

hook 最适合完成那些必须每次以相同方式发生、不需要 Claude 思考的操作。比如保存时格式化、拒绝 rm -rf /、会话结束时发送 Slack 消息。

使用 skill 处理 Claude 应该自行决定如何应用步骤,或者内容是知识而非脚本的情况。比如:/release 检查清单、API 风格指南、调试手册。

在 CLAUDE.md 或 skill 中写「绝不编辑 .env」只是一个请求,不是保证,因此 Claude Code 不一定每一次执行都会遵守。

如果一条规则必须每次都严格得到执行,把它做成 hook 而不是 skill,比如把这个规则写入 PreToolUse hook 中。

相应的,Hook 的输出会进入上下文。

一个 PostToolUse hook 运行 linter 后把结果作为文本反馈给 Claude Code,而一个 /fix-lint skill 告诉 Claude Code 如何解决这些问题。

理解机制的层次关系

以上这些扩展机制可以定义在多个层级:用户级、项目级、通过 plugins,或者通过托管策略。

我们还可以在子目录中嵌套 CLAUDE.md 文件,或者在 monorepo 的特定 package 里放置 skills。

当同一个机制存在于多个层级时,它们的层次关系如下:

  • CLAUDE.md 文件
     是累加的:所有层级的内容同时贡献到 Claude 的上下文中。工作目录及以上的文件在启动时加载。子目录的文件在我们进入它们时加载。当指令冲突时,Claude Code 会自行判断调和,更具体的指令通常会优先得到执行。
  • Skills 和 subagents
     按名称覆盖:当同一个名称存在于多个层级时,skills 的优先级是 managed > user > project;subagents 的优先级是 managed > CLI flag > project > user > plugin。
  • MCP servers
     按名称覆盖:local > project > user。
  • Hooks
     是合并的:所有注册的 hooks 都会针对匹配的事件触发,无论来源如何。

组合使用多种机制

每种扩展机制解决不同的问题:CLAUDE.md 处理始终在线的上下文,skills 处理按需的知识和工作流,MCP 处理外部连接,subagents 处理隔离,hooks 处理自动化。

比如我们可能在 CLAUDE.md 中存放项目约定,用 skill 管理部署工作流,用 MCP 连接数据库,用 hook 在每次编辑后运行 linting。

总之每种机制处理它最擅长的事情。

模式
工作方式
举例
Skill + MCP
MCP 提供连接;skill 教 Claude 如何用好它
MCP 连接数据库,skill 记录 schema 和查询模式
Skill + Subagent
Skill 为并行工作启动 subagents
/audit
 skill 启动在隔离上下文中工作的安全、性能和风格 subagents
CLAUDE.md + Skills
CLAUDE.md 存放始终在线的规则;skills 存放按需加载的参考资料
CLAUDE.md 说"遵循我们的 API 约定",skill 包含完整的 API 风格指南
Hook + MCP
Hook 通过 MCP 触发外部操作
编辑后的 hook 在 Claude 修改关键文件时发送 Slack 通知

留意上下文成本

我们添加的每个机制都会消耗 Claude 的一部分上下文。

一个 Claude Code 项目的扩展实现如果太多,会迅速填满上下文窗口,而且还会增加噪音,降低 Claude Code 的效率和准确率。

比如 skills 可能无法正确触发,或者 Claude 可能忘记约定。

了解每种机制对应的上下文成本,有助于我们做好权衡,构建更有效的 Claude Code 配置。

各机制的上下文成本

每种机制有不同的加载策略和上下文成本:

机制
加载时机
加载内容
上下文成本
CLAUDE.md
会话启动
完整内容
每个请求
Skills
会话启动 + 使用时
启动时加载描述,使用时加载完整内容
MCP servers
会话启动
工具名称;完整 schema 按需加载
低,直到工具被使用
Subagents
被启动时
带指定 skills 的全新上下文
与主会话隔离
Hooks
触发时
无(外部运行)
零,除非 hook 返回额外上下文

注意在默认情况下,skill 描述在会话启动时加载,这样 Claude Code 可以决定何时使用它们。

在 skill 的 frontmatter 中设置 disable-model-invocation: true 可以把 skill 完全隐藏,这意味着它只剩下我们手动调用一种触发途径了。

每种机制在会话的不同时间点加载。

小结

扩展 Claude Code 的关键,不在于一开始就把所有机制配置齐全,而在于理解每种机制解决什么问题,然后在遇到问题时选对工具,不断进行迭代优化。

CLAUDE.md 是持久层,保证核心约定每次会话都在场。

Skills 是知识库和工具箱,既可以做随时调阅的参考手册,也可以做一键触发的自动化流程。

MCP 是外部能力的接入层,把 Claude 的视野从本地代码库扩展到数据库、问题跟踪器、监控系统。

Subagents 和 agent teams 是并行化和隔离的手段,前者适合快速的单向任务,后者适合需要协作和讨论的复杂工作。

Hooks 是自动化的底线,用确定性的脚本执行替代指令式的要求,保证关键规则每次都能被遵守。

这些机制各司其职,又能灵活组合。

真正理解它们,才能把 Claude Code 从一个聊天工具变成一个贴合项目实际,提高工作效率的开发伙伴。

最新文章

随机文章

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