乐于分享
好东西不私藏

iofficeai/officecli:专为 AI Agent 设计的零依赖 Office CLI

iofficeai/officecli:专为 AI Agent 设计的零依赖 Office CLI

GitHub: https://github.com/iofficeai/officecli

一句话总结

iofficeai/officecli 是 专为 AI Agent 设计的零依赖 Office CLI——单二进制、自带 HTML 渲染、路径化寻址 + 结构化 JSON + 自愈错误码,把 Word/Excel/PPT 的"读 → 改 → 看 → 再改"全流程收敛成一条对 LLM 友好的工作回路;其姊妹产品 AionUi 桌面端用它做 Office 自动化的底层引擎。

值得关注的理由

  • 垂直稀缺:在"agent 写 Office"这条窄通道上近乎独占,对位 MarkItDown / python-docx 三件套 / LibreOffice headless 时全部胜出(写能力 + 渲染预览 + 单二进制 + MCP 集成)。
  • 架构克制:partial-class 按 Format × Operation 二维切分(158 个 partial 文件),schema-driven help + plugin-protocol 让核心仓保持精瘦,同时不牺牲扩展点。
  • 运营级节奏:3.8 个月、5,572 commits、130 个 tag、月 commit 单调递增(668 → 1464 → 1481 → 1712),是少见的"commit 数能讲清产品节奏"的工程样本。
  • AionUi 母舰背书:与姊妹项目 AionUi(29K stars,TypeScript 桌面)形成"agent 前端 + Office 中间件"垂直栈,作者团队的连续性有产品背书。

项目展示

类型: hero — 主流程:Agent 在 AionUi 里调用 officecli 生成 PPT

类型: demo — 设计型 PPT 自动化生成

类型: demo — 商业汇报场景

类型: demo — 技术分享场景

类型: demo — Word 学术论文模板填充

项目画像

维度 数据
GitHub https://github.com/iofficeai/officecli
Star / Fork 9,848 / 673
Watcher / Open Issue / Open PR 26 / 13 / 8
代码行数 252,484 行(C# 183K / 331 文件,72.6%;含 JSON 24K / Shell 23K / Python 16K)
项目年龄 3.8 个月(2026-03-15 至今)
开发阶段 密集开发(近 30 天 1,685 commits、月 commit 单调递增)
贡献模式 单人主导 + Claude 协作(zmworm 87.6% / goworm ~19% / Claude 48 commits,共 12 人)
热度定位 大众热门(9848 stars / 3.8 月 = 爆发型)
License Apache 2.0
质量评级 代码 B+ / 文档 A / 测试 D(近乎为零)

作者视角:为什么存在这个项目

创始人/作者背景

iofficeai 团队(AionUi,账号 2023-09-17 至今 2.8 年,517 followers,7 个公开仓库)是国产 "AI-on-UI" 团队。母产品是 AionUi 桌面端(TypeScript,29K stars),定位为"AI agent + 本地桌面"的多 agent 协作壳——在落地过程中反复撞到同一堵墙:没有本地、无依赖、agent-native 的 Office 操作层。python-docx 类库对程序员友好、对 agent 不友好(agent 无法从 traceback 推理"第 N 段第 M 个 run"),MarkItDown 只读,LibreOffice 太重。OfficeCLI 就是 AionUi 的"back-of-house"层,从 README 自述 "powered by OfficeCLI under the hood" 直接印证。

问题判断

作者看到了三个现有方案共同的 agent 场景缺口: 1. 没有"路径寻址 + 稳定 ID"——python-docx 的对象模型需要懂 OOXML 才能写出第 3 段第 2 个 run,agent 写这种代码极易误定位; 2. 没有结构化错误——Python 抛 AttributeError,agent 必须自行解析 traceback,且缺乏"建议 + 合法值"的自愈线索; 3. 没有"渲染→观察→修复"的视觉回路——agent 只能读到 XML 树,看不到真实版面,导致"set 一段 → save → 不知道对不对 → 再 set"循环无视觉反馈。

时机:2026 年正是 AI agent 平台(Claude Code、Cursor、Codex)大规模进入企业工作流的一年,Office 自动化从"程序员脚本"升级为"agent 标准动作",市场窗口正打开。

解法哲学

三条强约束贯穿所有架构决策: 1. Agent 是 co-worker,不是 single-model assistant——CLI 表面必须可被 agent 自行探索、纠错、组合,因此出现 L1 → L2 → L3 分层 + --json + 自描述 schema help。 2. Local-first / provider-agnostic——没有 Office 依赖、没有云渲染,单二进制 + 嵌入式 schema;用户可在 air-gapped 环境使用。 3. 可观测的失败优于静默成功——issue #158 "silent Exit 1"被列在稳定性路线里,所有错误码带 suggestion / valid_range,BUG-XXX 注释遍布源码(grep 命中 1,651 处)——把"过往 bug → 下次同类 bug 的自我拦截"刻进代码注释。

战略意图

OfficeCLI 是 iofficeai 的"Office automation 中间件"层——AionUi 是面向终端用户的桌面壳,OfficeCLI 是面向 agent 的 CLI 引擎,未来还可能成为 SaaS API(plugin-protocol 已暗示服务端化路径:exporter / format-handler 走 sidecar)。三条产品线共享同一个 OOXML 抽象,因此 87.6% 的代码量集中在 main zmworm 手中并不奇怪——这是 single-vision 工程的代价。

核心价值提炼

创新之处

按新颖度 × 实用性排序:

  1. 三层渐进披露 L1→L2→L3 + 自描述 schema help:/slide[1]/shape[@id=550950021] 风格的本地图路径代替 OOXML XPath;用结构化 JSON envelope 替代 stderr + exit-code;用嵌入式 JSON schema 替代 hard-coded --help 文本,让 agent 通过 help docx paragraph --json 自助纠错。L1 命令输出有 outline/text/annotated/stats/issues/html/svg/screenshot/pdf/forms 十种模式。新颖度 3/5,实用性 5/5,可迁移性 5/5。

  2. Resident Mode + Adaptive Flush(命名管道 + EMA 自适应):用命名管道 officecli-<hash> + 独立 ping pipe + 双 CTS + 自适应 flush 间隔实现"近零延迟"的 agent loop;flush 模式做成可调旋钮(each/auto/<N>/off)。每次操作省去 50–200ms 子进程 spawn 开销。新颖度 4/5,实用性 5/5,可迁移性 3/5。

  3. Single-tool MCP 包装策略:反 MCP 标准做法,不把每个 verb 拆 MCP tool,而是把所有操作压成单个 officecli tool,参数就是 CLI 命令字符串。command 字符串 tokenize 后原样喂给 System.CommandLine。SKILL.md 里的命令示例在 MCP / CLI 两路逐字可用。新颖度 4/5,实用性 5/5,可迁移性 5/5。

  4. Self-Repair Open 链路:解压炸弹防御(GuardDecompressionBomb)、悬空 rel 修复(HasDanglingInternalRels / StripDanglingPackageRels,注释里写 "Word tolerates them, SDK refuses")、XML 编码修复(FixXmlEncodingencoding="ascii" 改 UTF-8)。每一步都注释了上游 issue 来源,让 agent 拿到 100 个脏 pptx 都能跑。新颖度 3/5,实用性 5/5,可迁移性 4/5。

  5. Scene-Layer Skill 继承:11 个 skill packs(officecli 基础 + officecli-{pptx,docx,xlsx} + morph-ppt/morph-ppt-3d + pitch-deck/academic-paper/data-dashboard/financial-model/word-form)通过 skills/<name> 子目录 + skill-parity.yml workflow 保证一致性。morph-ppt 继承 officecli-pptx 的"硬规则"(visual floor、grid math、palette),只新增"Morph 特有"的 cross-slide binding 规则。新颖度 3/5,实用性 5/5,可迁移性 5/5。

  6. Dump → Batch 双向回路:dump <file> [<path>] 序列化任意子树为可重放的 batch JSON,batch <file> --input 回放;支持跨 part 关系(OLE / 3D / SmartArt / morph / p15 通过 raw-set passthrough 兜底)。模板生成、CI 报告、批量改样式都能用。新颖度 4/5,实用性 4/5,可迁移性 3/5。

可复用的模式与技巧

  1. Consistency Marker (CONSISTENCY(name)) 注释:把"这两个地方必须保持一致"的事实写进代码注释,grep 即可见。比 ESLint / compiler-level rule 更轻量、上下文更丰富。适合 high-velocity 多人项目。
  2. Bug Marker (BUG-<id>) 注释:1,651 处 BUG- 引用散落源码,每处都是"这个 bug 曾经/仍可能发生"。从历史 commit 修复追溯到代码现状,给 reviewer 提供"为什么这里要这样写"的上下文。
  3. Thin MCP Shell Over CLI:单一 MCP tool officeclicommand 字符串透传。任何已有 CLI + 想接 MCP 的项目都能套用,避免 surface area 翻倍。
  4. Resident + Adaptive Flush + Auto-Start:不让用户手动 open,而是首次 set/add 时自动 spawn resident(除非 OFFICECLI_NO_AUTO_RESIDENT=1),idle 自适应 flush,下次访问秒级命中。
  5. EmbeddedResource + Manifest Index:把所有 skill、schema、图表 XML 用 <EmbeddedResource> 打进二进制,运行时按需加载,单文件发行零依赖。
  6. Plugin-Protocol(dump-reader / exporter / format-handler 三类 sidecar):核心仓只管 OOXML 三种格式,其他格式通过 sidecar 协议接入。

关键设计决策

  1. Partial class 按 Format × Operation 二维拆分(158 个 partial 文件):   - 问题:单文件 25 万行 OOXML 操作代码会迅速变成不可维护的天书;同时三个 handler 共享相同 verb 语义(add/set/get)。   - 方案:public partial class WordHandler : IDocumentHandler, IRenderModelHost——每个 verb 一组 partial 文件。   - Trade-off:跨 partial 文件私有字段访问方便,但 partial 之间没有显式依赖图,修改 shared state 时容易引入隐式耦合(如 InvalidateStyleIndex() 必须从 Add/Remove 两处显式调用)。   - 可迁移性:(.NET 标准做法)。

  2. MCP 把所有操作压缩为单个 officecli 工具:   - 问题:把每个 verb 拆成独立 MCP tool 会产生 30+ 工具;agent 在工具列表里找路很慢;CLI / MCP 表面必须保持一致。   - 方案:McpServer.cs 把 JSON-RPC 的 tools/call.command 字符串 tokenize 后原样喂给同一个 System.CommandLine root。   - Trade-off:牺牲"严格类型化 MCP tool"(每个参数都是 JSON schema 强约束),换来"CLI / MCP 单一事实源"。   - 可迁移性:极高

  3. 拒绝 docx 加密文档、可疑解压炸弹、悬空 rel,全部以"修复+重试"而非"失败"处理:   - 方案:防御链(GuardDecompressionBombHasDanglingInternalRelsFixXmlEncoding → catch OpenXmlPackageException 翻译成 CliException(Code=corrupt_file))。   - Trade-off:隐藏的"修复"动作(mutate file in place)有副作用——agent 拿到被改过的文件不知情。   - 可迁移性:

竞品格局与定位

竞品对比矩阵

维度 officecli MarkItDown python-docx 三件套 LibreOffice headless Docling (IBM)
读 .docx/.xlsx/.pptx ✓ 深度 + 结构化 ✓ 转 Markdown ✓ 结构化 ✓ 转 PDF ✓ 富解析
写 .docx/.xlsx/.pptx ✓ 全功能
渲染预览 ✓ 内置 HTML+PNG
Agent 路径寻址
结构化 JSON ✓ 全表面
错误带 suggestion
单二进制零依赖 ✗(Python) ✗(Python + 3 lib) ✗(JVM) ✗(Python+ML)
MCP 集成
协议/扩展点 ✓ plugin-protocol ✓ UNO

差异化护城河

  1. "agent-friendly CLI"垂直几乎独占:python-docx 等不能算,因为不 zero-install、不 agent-native;
  2. 内置 HTML 渲染引擎是巨大先发优势(任何"AI 写 Office"场景都需要视觉反馈);
  3. MCP 单 tool 透传是 Claude Code / Cursor 用户切换成本最低的入口;
  4. AionUi 母舰锁定:把 OfficeCLI 锁进自家桌面生态,形成网络效应。

竞争风险

  1. 测试真空:slnx 引用了 tests/OfficeCli.Tests.csproj,但磁盘上 tests/ 目录不存在!整个仓库无任何 .cs 测试文件。0% test commit + 0.5% refactor commit,重构和正确性没有回归保护(正是 issue #158 silent failure 的根因)。
  2. 单兵作战风险高:zmworm 87.6% / goworm 19% / Claude 48 commits,任何关键人离职都会动摇项目。
  3. 自实现 OOXML 解析深度耦合 OOXML SDK:新格式(.doc/.hwpx)必须走 plugin。
  4. 若 Anthropic 推出官方 Office 工具或 Microsoft 在 Office Script / Graph API 中加入 agent-native 优化,护城河会被压缩。

生态定位

"AI agent 时代的 Office API 层"——与 AionUi 构成"agent 前端 + Office 中间件"垂直栈,与 Microsoft Graph / Office Script 形成互补(cloud vs local、agent vs human)。

套利机会分析

  • 信息差:低关注度但高质量——9.8K stars 在 3.8 个月内达成,但 vs 同体量 python-docx 类库关注度仍处于早期;CSDN / 腾讯云 / 搜狐多篇转载但缺少独立技术评测。
  • 技术借鉴:partial-class 二维切分、schema-driven help、single-tool MCP wrapper、resident + adaptive flush、Scene-Layer Skill 继承都是可直接复用到任何"agent-facing 工具"项目的高价值模式。
  • 生态位:填补了"agent 写 Office"这一窄通道,与 read-only 工具(MarkItDown / Docling)和通用转换工具(LibreOffice / Pandoc)错位竞争。
  • 趋势判断:AI agent 平台(Claude Code、Cursor、Codex)渗透率持续上升 → Office 自动化需求水涨船高 → officecli 作为已上架 5,500+ commits 的"agent-native Office CLI"占据先发优势,竞品要从 0 复制门槛极高(自研 OOXML 引擎 + 内嵌渲染 + L1-L3 渐进 + MCP 集成 + Skills Marketplace 缺一不可)。

风险与不足

  • 测试覆盖近零:最大风险。5,572 commits / 0 test commits / 0.5% refactor commits,下一次大型重构或 SDK 升级都可能引入 silent regression。建议优先补齐核心 handler(Word/Excel/PPT)的 dump → batch round-trip 测试。
  • Self-Repair 副作用可见性缺失:DocumentHandlerFactory 打开时 mutate 文件(剥 rel、改 XML 编码),目前没有"diff & report"机制,agent 拿到被改过的文件不知情。
  • 核心贡献者单点:zmworm 87.6% 占比 + Claude 48 commits(Claude-as-contributor),任何主维护者不可用期都会导致项目冻结。
  • 公开 API 稳定性声明缺失:plugin-protocol.md 自承 "v1 final draft, no backward-compat goal",扩展作者承担不确定性。
  • Issue #158 揭示的稳定性债:v1.0.110 仍有非零进程无声退出的情况,agent 自动化中遇到 silent failure 很难排查。

行动建议

  • 如果你要用它:适合作为 AI agent 工作流的 Office 自动化层(Claude Code / Cursor / Codex 已原生支持 MCP);对比 LibreOffice headless 它省去几百 MB 安装 + JVM 启动成本,对比 python-docx 它不需要写 OOXML 也能精准寻址。
  • 如果你要学它:重点关注以下文件:
  • src/officecli/McpServer.cs —— 单 tool MCP wrapper 的实现样板
  • src/officecli/ResidentServer.cs(2711 行)—— 命名管道 + 自适应 flush + 双 CTS 状态机
  • src/officecli/Help/SchemaHelpLoader.cs —— 嵌入式 schema 索引
  • src/officecli/Handlers/WordHandler.Navigation.cs(349 次修改)—— partial class 拆分后的最大文件
  • plugins/plugin-protocol.md —— sidecar 三类扩展点定义
  • .github/workflows/skill-parity.yml —— SKILL.md 多语言同步的 CI 实现
  • 如果你要 fork 它:可改进的方向——补齐单元测试(最高 ROI)、加 public API stability 声明、加 .editorconfig + dotnet format、把 DocumentHandlerFactory 的 self-repair 副作用改为"diff & report"模式、加 ROADMAP.md 走 RFC 流程。

知识入口

资源 链接
DeepWiki 未收录
Zread.ai 未收录
关联论文 无(Office 自动化非 ML 主战场)
在线 Demo 通过 officecli watch <file>.pptx 本地启 HTTP 26315 热加载预览;外部 demo playground 未发现
官方主页 https://officecli.ai(301 跳回 GitHub)
安装镜像 https://d.officecli.ai
母舰产品 https://www.aionui.com(AionUi 桌面端)
基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-12 15:48:46 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/847565.html
  2. 运行时间 : 0.138431s [ 吞吐率:7.22req/s ] 内存消耗:4,757.27kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=2c496c47f1459bd5b41a392b498d5517
  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.000688s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000816s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000374s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000291s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000566s ]
  6. SELECT * FROM `set` [ RunTime:0.000204s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000699s ]
  8. SELECT * FROM `article` WHERE `id` = 847565 LIMIT 1 [ RunTime:0.004395s ]
  9. UPDATE `article` SET `lasttime` = 1783842526 WHERE `id` = 847565 [ RunTime:0.002538s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000267s ]
  11. SELECT * FROM `article` WHERE `id` < 847565 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000513s ]
  12. SELECT * FROM `article` WHERE `id` > 847565 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000485s ]
  13. SELECT * FROM `article` WHERE `id` < 847565 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002053s ]
  14. SELECT * FROM `article` WHERE `id` < 847565 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.007815s ]
  15. SELECT * FROM `article` WHERE `id` < 847565 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.033294s ]
0.140173s