乐于分享
好东西不私藏

插件越多,越需要一套工作流

插件越多,越需要一套工作流

在 Claude Code、Codex 这类 AI 编程工具里,插件很容易被理解成一种"能力扩展"。

多一个命令,多一个专用角色,多一组执行规则,或者多一套外部工具连接能力,AI 看起来能处理的场景也就越多。

但真正把 Codex 或 Claude Code 放进开发流程里以后,会发现问题并不只是"能不能扩展能力"。

更关键的是:这些能力应该在什么任务里使用,按什么顺序使用,用完以后怎么验证,哪些动作必须停下来等人确认。

有价值的插件体系,不该只是能力堆叠,而应该把工具、角色、规则和输出格式组织成一套可复用流程。

一个好插件不只是告诉 AI"你多了一个能力",还应该把这个能力的使用方式说清楚:什么时候用、用之前检查什么、用完怎么验证、哪些动作必须等人确认、输出按什么格式交付。

今天这篇想聊的就是这个:AI 编程工具的插件,不是装得越多越好,而是要装得有秩序。

插件要服务流程

Claude Code 官方对插件的定位很明确:它不是只增加一个命令,也不是只接入一个外部工具,而是可以同时包含 slash commands、subagents、MCP servers、hooks 和 Skills。装上一个插件以后,你得到的可能是一组命令、几个专用角色、若干通过 MCP 接入的外部工具,加上一套执行前后的规则。

slash command 负责快速触发流程,subagent 负责把特定任务交给特定角色,MCP server 负责连接外部工具和数据源,hooks 负责在执行过程中做检查和记录,Skills 则可以沉淀某类任务的做法。

单独看,它们只是几类不同的能力组件;组合到一个插件里,就可以变成一套可复用的团队工作流程。

最容易理解的例子是代码审查。真正有用的插件,不应该只是多一个"代码审查工具",而是让 PR 审查有一套固定流程:

  • /pr-review 启动审查

  • code-reviewer subagent 读代码找问题

  • GitHub MCP 读取 PR、diff 和 issue 背景

  • hooks 审查前检查敏感文件,审查后记录结果

  • 输出固定为风险等级、文件位置、原因、建议、是否阻塞

这时候插件就不只是工具了,而是一个可复用的工作流。

Codex 的做法:插件和技能分工

Codex 的组织方式不太一样。它把"连接外部信息"和"沉淀做事方法"分成了两类能力:插件(plugins)和技能(skills)。

OpenAI 对 Codex 插件的定义,更偏向"让 Codex 访问外部工具和信息源"。比如读取 Google Drive 里的文档、查看邮箱里的信息,或者和公司内部系统交互。插件解决的是:Codex 能不能拿到任务需要的信息和上下文。

技能更像工作手册。它不给 Codex 多一个外部工具,而是告诉它"这类任务我们团队通常怎么做"。比如怎么写周报、怎么整理客户简报、怎么把会议纪要转成项目计划、怎么按品牌语气检查对外文案。

换句话说,插件决定 Codex 能访问什么,技能决定 Codex 访问之后应该怎么做事。

做一个真正有用的 AI 编程工作流,通常两边都得有。比如你要让 Codex 做发布前检查:插件让它读取 GitHub PR、Linear issue、设计文档和测试报告;技能写清楚检查顺序、哪些问题算阻塞、报告应该怎么交付。外部上下文和做事方法放在一起,AI 才不只是能访问更多东西,而是能按团队习惯把一件事做完。

案例一:PR 审查插件

下面以最常见的 PR 审查为例。

假设我们要给 Claude Code 做一个 PR 审查插件 team-pr-review,目标是形成一套稳定审查流程,不是让模型临时扫一遍代码。

真正落地时,可以先按四层来设计:入口、角色、工具、边界。

触发入口:slash command。


/team-pr-review

命令背后不是一句"帮我 review 一下",而是启动一套固定流程:


请审查当前 PR。
审查范围包括:
1. 业务逻辑是否有明显错误;
2. 是否有安全风险;
3. 是否修改了权限、数据库、支付、配置等高风险区域;
4. 测试是否覆盖关键路径;
5. 是否有需要人工确认的改动。

请按以下格式输出:
- 阻塞问题
- 非阻塞建议
- 需要人工确认的点
- 建议补充的测试
- 最终结论:可以合并 / 不建议合并

团队每个人用同一个命令,输出格式就不会每次都变。

执行角色:专用 subagent。

比如叫 code-reviewer,职责只有审查,不改代码:


你负责代码审查。
你不负责改代码,只负责审查。
优先关注:
1. 权限控制;
2. 数据库迁移;
3. 外部 API 调用;
4. 错误处理;
5. 测试缺口;
6. 是否存在为了通过测试而修改测试本身的情况。

审查角色不该顺手帮你改代码——审查和修复混在一起,两边都做不干净。

工具连接:MCP。

GitHub MCP 让 Claude Code 读取 PR 信息、diff、评论和关联 issue。如果项目还有日志系统、错误监控、设计文档,也可以通过 MCP 接进来。

但 MCP 不是越多越好。PR 审查只需要和审查相关的工具。数据库生产权限、部署权限、支付后台这类高风险工具,不该默认出现在一个审查插件里。

执行规则:hooks。

hooks 做两件事——审查前检查边界,审查后记录结果。

比如发现 PR 改了这些目录,就让审查角色提高风险等级:


src/auth/
src/payments/
src/migrations/
infra/
.github/workflows/

审查后把结论写入本地日志,或生成固定格式的 review summary,方便追溯。

四层合在一起,PR 审查流程就变成:


/team-pr-review
 -> 读取 PR 和关联上下文
 -> 识别高风险文件
 -> 调用 code-reviewer 审查
 -> 输出固定格式结果
 -> 记录审查摘要

具体开发时,可以按这个顺序做。

第一步,先写清楚插件边界。team-pr-review 只做审查,不改代码,不提交 commit,不触发合并,也不替用户解决所有问题。它的价值是把风险找出来,把证据列清楚,把需要人工判断的地方摆到台面上。

第二步,定义命令入口。比如 /team-pr-review 默认读取当前分支对应的 PR,也可以允许用户补充参数:


/team-pr-review --focus security
/team-pr-review --focus tests
/team-pr-review --since main

这些参数的作用,是让团队在不同场景下复用同一套流程。安全审查、测试审查、合并前总审查,关注点可以不同,但输出结构应该保持一致。

第三步,写角色说明。code-reviewer 不应该是一个什么都管的角色,而应该有明确职责:


职责:
1. 读取 PR diff、关联 issue 和测试结果;
2. 判断改动是否涉及高风险区域;
3. 找出可能导致线上问题的代码路径;
4. 标注证据,尽量给出文件位置;
5. 不直接修改代码。

禁止动作:
1. 不主动提交修复;
2. 不修改测试来适配实现;
3. 不把没有证据的猜测写成确定结论;
4. 不把风格偏好当成阻塞问题。

第四步,配置工具权限。PR 审查插件通常只需要读 GitHub、读测试报告、读静态扫描结果。如果还要接设计文档或需求系统,也应该是只读。实际配置时,可以先写一份基础版权限白名单:


允许读取:
- GitHub PR 基本信息
- GitHub PR diff
- GitHub issue / discussion
- CI 测试结果
- 静态扫描结果
- 需求文档或设计文档

禁止执行:
- push commit
- merge PR
- approve PR
- 触发部署
- 修改数据库
- 修改生产配置
- 修改 CI/CD 配置

如果接的是 MCP,也可以按这个思路去约束工具能力。比如 PR 审查只允许读取 get_pull_requestlist_filesget_difflist_checks 这类工具,不开放 merge_pull_requestcreate_deploymentupdate_secret 这类动作。这个阶段最容易犯的错误,是图方便把太多系统都接进来。权限越多,审查插件越容易偏离原本的职责。

第五步,把 hooks 用在关键节点上。这里不要只写一句"加 hooks",而要明确每个 hook 拦什么。


启动前:
- 检查当前目录是不是 Git 仓库;
- 检查是否能找到对应 PR;
- 检查用户是否给了审查范围;
- 如果缺少必要信息,先追问,不直接开始审查。

读取 diff 后:
- 检查是否命中高风险目录;
- 如果改到 auth、payments、migrations、infra、CI 配置,提高风险等级;
- 如果 diff 过大,提示用户是否拆分审查范围。

输出前:
- 检查每个阻塞问题是否包含文件位置;
- 检查每个结论是否有证据;
- 检查是否明确区分阻塞问题和普通建议;
- 检查是否给出最终合并建议。

如果这些检查没有通过,就不要让插件继续生成一段完整但不好用的审查报告。更好的做法是让它停下来补信息,或者直接输出"当前无法完成审查",并说明缺少什么。

第六步,固定输出模板。团队最好约定一份标准格式:


## 阻塞问题
- 位置:
- 问题:
- 证据:
- 建议:

## 非阻塞建议
- 位置:
- 建议:

## 需要人工确认
- 事项:
- 为什么需要确认:

## 测试缺口
- 缺口:
- 建议补充:

## 结论
可以合并 / 建议修改后再合并 / 不建议合并

做到这一步,插件就不只是"帮我看一下 PR",而是把团队对 PR 审查的要求写进了流程里。新人可以按统一标准完成审查,老同事也能少做很多重复确认。

案例二:线上问题排查插件

PR 审查输入明确、风险可控,很适合入门。但插件体系更有价值的地方,是那些信息分散、风险更高的场景。

比如线上问题排查。

用户反馈"昨天晚上 10 点以后支付成功率下降了",如果每次都从头描述排查流程,很快就成重复劳动。这类场景更适合沉淀成一个固定插件。

做一个 incident-triage 插件,目标不是让 AI 编程工具直接修线上问题,而是帮工程师完成第一轮排查:收集信息、缩小范围、列出可能原因、给下一步建议。

触发入口:


/incident-triage

用户提供现象、时间范围、影响范围。命令背后的 prompt 不让 AI 直接猜原因,而是规定排查步骤:


请按以下顺序排查:
1. 先确认影响范围和时间窗口;
2. 再检查这段时间内是否有发布、配置变更、依赖升级;
3. 查看错误日志和监控指标,找出异常集中点;
4. 对比正常时间段和异常时间段的差异;
5. 输出可能原因列表,并标注置信度;
6. 不要直接执行修复动作,只给出下一步建议。

执行角色:incident-analyst

它不写代码,不触发发布,只做故障分析:


你负责线上问题排查。
你不负责直接修复代码,也不触发发布。
你只负责:
1. 汇总现象;
2. 对齐时间线;
3. 查找异常指标;
4. 提出可能原因;
5. 给出下一步验证建议。

如果证据不足,必须明确说明"当前无法判断",不要编造原因。

工具连接: 日志系统、监控系统、GitHub/GitLab、CI/CD 记录、只读数据库。

这里权限必须更谨慎——线上排查插件默认只读。可以查日志、查监控、查发布记录,但不该默认拥有改配置、重启服务、回滚发布、改数据库的权限。需要执行高风险动作,必须交给人确认。

边界规则: 插件启动时先检查用户有没有给出时间范围,没有就追问,不直接开始查。排查流程访问生产数据库时,hooks 强制限制为只读查询。建议回滚时必须输出理由、影响范围和验证方式,不能直接执行。

输出格式也应该固定:


## 现象总结
发生了什么,影响哪些用户,时间范围是什么。

## 时间线
列出发布、配置变更、异常指标出现的时间点。

## 可能原因
按置信度排序,每个原因必须附证据。

## 还需要验证什么
列出下一步要查的日志、指标或代码路径。

## 不建议自动执行的动作
列出需要人工确认的高风险操作。

这个案例比 PR 审查更能说明插件设计的核心:不是把所有能力都交给 AI 编程工具,而是让它在一个受控流程里使用必要能力。面对不完整的现象、多个外部系统和生产环境的高风险,边界比能力更重要。

同样的思路放到 Codex

如果用 Codex 做同样的事,落地方式稍有不同,更适合拆成插件和技能两部分。

插件负责让 Codex 访问 GitHub、Linear、文档系统、测试报告这些外部信息源。技能负责把团队的排查方法或审查方法写下来。

还是拿线上问题排查来说。使用 Codex 时,不一定要把所有能力都放进一个插件里,更合理的拆法是:

  • GitHub 插件负责读取最近发布、PR、commit 和关联 issue

  • 日志或监控插件负责读取异常指标、错误日志和告警记录

  • 文档插件负责读取服务说明、接口文档和历史故障记录

  • incident-triage-skill 负责规定排查顺序、证据要求、禁止动作和输出格式

也就是说,插件解决"信息从哪里来",技能解决"拿到信息以后怎么判断"。

比如 incident-triage-skill 可以这样写:


本团队线上问题排查流程:
1. 先确认现象、时间范围和影响范围;
2. 再读取日志、监控和发布记录;
3. 对齐异常指标和最近变更的时间线;
4. 给出可能原因,并标注证据和置信度;
5. 不直接执行回滚、重启、改配置等动作;
6. 输出下一步验证建议和需要人工确认的操作。

实际使用时,可以这样发起:


$incident-triage-skill
请使用日志、监控和 GitHub 插件,排查昨晚 10 点后支付成功率下降的问题。

如果要写得更完整,技能里还可以继续补三类内容。

第一类是证据要求。比如所有结论都必须关联到日志、指标、发布记录或代码变更,不能只写"可能是缓存问题"这种空泛判断。


结论必须包含证据来源:
- 日志片段或错误类型;
- 指标变化;
- 关联发布或配置变更;
- 相关代码路径。

如果没有证据,请写"当前证据不足",不要给出确定结论。

第二类是动作边界。线上排查最危险的地方,不是模型不会分析,而是它把分析和处置混在一起。


禁止直接执行:
- 回滚发布;
- 重启服务;
- 修改配置;
- 写入数据库;
- 关闭告警;
- 修改 CI/CD 设置。

如需建议这些动作,必须说明理由、影响范围、验证方式,并标注"需要人工确认"。

第三类是输出模板。模板越固定,后续越容易接入团队流程。


## 结论摘要
一句话说明当前最可能的问题。

## 证据列表
按日志、指标、发布记录、代码路径分别列出。

## 时间线
按时间排序列出异常出现、发布变更、告警触发。

## 可能原因
按置信度排序,每一项都要有证据。

## 建议下一步
只给验证建议,不直接执行高风险动作。

## 需要人工确认
列出回滚、重启、改配置等需要人判断的动作。

这个例子里,插件负责提供外部上下文,技能负责按团队方式做事。只有插件没有技能,Codex 能拿到日志和发布记录,但不知道你们的排查习惯。只有技能没有插件,Codex 知道怎么排查,但还得你手动把所有数据复制给它。两边配合起来,才能形成一套可复用的工作流。

所以 Claude Code 和 Codex 的差别,不是一个能做、另一个不能做,而是组织方式不同。Claude Code 更适合把命令、角色、工具连接和执行规则放在同一个插件流程里。Codex 更适合把外部访问能力交给插件,把团队方法沉淀到技能里。具体落地时,可以不用纠结这些概念该怎么对应,先把"能访问什么"和"应该怎么做"分清楚。

插件越多,边界越重要

插件体系搭起来以后,很容易陷入一个惯性:越装越多。

一开始只是多一个 GitHub 能力,后来又接了数据库、日志、监控、文档、Slack、飞书、设计工具、云平台。看着很强大,但每多一个外部系统,AI 编程工具能影响的范围就大一点。

所以不建议一上来就追求"全连接"。

更合理的做法是按任务类型拆插件:

  • PR 审查插件只接 GitHub、测试报告、静态扫描结果

  • 文档生成插件只接代码仓库、设计文档、知识库

  • 线上排查插件只接日志、监控、只读数据库

  • 发布检查插件只接 CI、配置文件、变更记录

每个插件都该想清楚四件事:

服务哪类任务? 别做"万能开发插件"。万能往往意味着边界不清。

需要哪些工具? 只接必要的,不要图方便把所有系统都塞进去。

能做哪些动作? 读取、建议、写文件、执行命令、发评论、触发部署,这些动作的风险完全不同,最好分成几档处理。


低风险:读取信息、总结结果、生成建议。
中风险:写本地文件、生成 patch、发表评论。
高风险:执行命令、改配置、触发部署、修改数据库。

低风险动作可以默认开放;中风险动作最好让用户确认;高风险动作不要放进普通插件里,至少要单独授权、记录日志,并且能回退。

怎么交付结果? 输出格式必须固定。否则每次插件跑完,用户还得重新判断哪些是重点、哪些需要处理、哪些只是模型临时补充的内容。

最小可用的插件体系

如果让我给团队设计一个起步方案,我不会一开始追求覆盖所有场景。更适合作为第一批建设对象的,是下面四类插件:

PR 审查插件。 最容易落地。输入明确,输出明确,风险可控。先只读 PR,不直接改代码。

测试补全插件。 专门检查某次改动有没有测试缺口,生成建议测试。可以生成 patch,但最好不要自动合并。

线上问题排查插件。 处理"现象不清楚、信息分散在多个系统里"的场景。默认只读,不修复、不回滚。

发布前检查插件。 检查配置、权限、数据库迁移、依赖变更、CI 状态、回滚方案。价值不在写代码,在减少上线前漏项。

这四个做好,已经能覆盖大多数团队的高频场景。而且它们各管各的——审查插件看问题,测试插件补验证,排查插件缩小故障范围,发布插件守交付边界——不会互相抢职责,也不会都变成"万能插件"。

插件体系,本质上也是 Harness

如果你看过我前面写的 Harness 系列,会发现这里讲的还是同一类问题。

Harness 不是单纯限制 AI 编程工具,而是把边界、权限、验证和回退放进工程流程里。插件体系也一样——一个好的插件不只是扩展能力,也在规定能力怎么用。它告诉 AI 编程工具这个任务该按什么顺序做、哪些工具可以用、哪些地方要停、结果怎么交付。

所以插件越强,越不能"装上就行"。插件需要设计,需要边界,也需要审计和维护。否则插件越多,AI 编程工具看着越强,系统反而越难控制。

写在最后

AI 编程工具的插件体系,正从"扩展能力"变成"固化工作流"。

Claude Code 的插件可以同时包含命令、subagents、MCP servers、hooks 和 Skills。Codex 则把"访问外部信息"和"遵循团队流程"分别放在插件和技能里。叫法不同,但方向接近:不是让 AI 拥有更多零散能力,而是让 AI 按更稳定的方式完成任务。

所以如果今天要给 AI 编程工具装插件,我不会先问"有什么插件值得装"。

我会先问:这个插件要替我固化哪一段工作流?

想清楚这个,插件才不会变成新的混乱源,而是团队可以复用、可以管理、也可以不断改进的工程资产。


如果这篇文章对你有启发,欢迎点个关注,也顺手来个一键三连:点赞、转发、点亮小心心。

我会持续追踪 AI 领域的热点变化,AI 编程工具的最新进展,以及背后的技术逻辑和实战经验。也欢迎在评论区留言,一起交流你的看法。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-05-11 13:05:55 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/601415.html
  2. 运行时间 : 0.117437s [ 吞吐率:8.52req/s ] 内存消耗:4,661.54kb 文件加载: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.000524s ] 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.000276s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000463s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000467s ]
  6. SELECT * FROM `set` [ RunTime:0.000194s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000507s ]
  8. SELECT * FROM `article` WHERE `id` = 601415 LIMIT 1 [ RunTime:0.000468s ]
  9. UPDATE `article` SET `lasttime` = 1778475955 WHERE `id` = 601415 [ RunTime:0.021961s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000329s ]
  11. SELECT * FROM `article` WHERE `id` < 601415 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000541s ]
  12. SELECT * FROM `article` WHERE `id` > 601415 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000456s ]
  13. SELECT * FROM `article` WHERE `id` < 601415 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.006725s ]
  14. SELECT * FROM `article` WHERE `id` < 601415 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000660s ]
  15. SELECT * FROM `article` WHERE `id` < 601415 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000659s ]
0.119383s