乐于分享
好东西不私藏

使用 AI 编码工具进行技术栈转换:工程师视角的最佳实践指南

使用 AI 编码工具进行技术栈转换:工程师视角的最佳实践指南

使用 AI 编码工具进行技术栈转换:一份工程师视角的最佳实践指南

技术债早还早轻松,但还债的方式不对,可能直接破产。


一、技术栈转换,为什么 AI 是正解?

技术栈转换(Stack Migration)是工程实践中最危险的操作之一。改一行可能爆一片,牵一发而动全身。传统方式靠人工逐文件阅读、逐模块重构——效率低、风险高、容易遗漏,还特别容易打击团队士气。

AI 编码工具的出现在这个领域带来了真正的范式转变:大模型的上下文理解能力 + 代码生成能力,可以把「理解代码」和「生成代码」两件事的效率都提升一个数量级。

但 AI 并不是银弹。用对方式,它是超级加速器;用错方式,它是代码破坏王。

这篇文章系统整理了我用 AI 编码工具做技术栈转换的完整方法论,踩过的坑、和验证过的流程,全部真实还原。


二、工具选型:谁真正适合做迁移?

四大金刚横向对比

维度 Cursor Windsurf GitHub Copilot Claude Code
定位 AI 原生编辑器 企业级代码重构专家 AI 辅助补全插件 终端 AI 工作流
上下文能力 强,多文件同时分析 极强,50 万行级项目 中等,需手动选文件 超大上下文,整仓理解
Agent 自主能力 强,多步任务自动执行 强,Cascade 多步编排 弱,以补全为主 顶尖,终端全流程自动化
跨文件重构 ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐ ⭐⭐⭐⭐⭐
国内可用性 ⭐⭐⭐⭐⭐ 直连稳定 需代理 需代理 需代理
上手门槛 低,VS Code 用户零成本迁移 高,纯终端
适合场景 复杂项目多文件重构 超大型遗留系统分析 日常编码辅助 架构级深度重构

选型建议一句话版

  • 中小型项目(< 10 万行):选 Cursor,国内直连、上手简单,Agent 模式可自主完成多文件修改。
  • 超大型遗留系统(> 10 万行,多模块依赖):选 Claude Code 或 Windsurf,超大上下文窗口能一次理解整仓代码结构,避免"盲人摸象"。
  • 日常辅助 + 逐步迁移:选 GitHub Copilot,配合人工审核,适合长周期过渡。

三、核心技术原则(血的教训)

原则 1:永远保持人工审核

AI 生成代码必须经过人工 review 才能合入,这是铁律。

AI 在转换过程中可能:引入逻辑错误、删掉看似"无用"但实际有依赖的代码、或在新旧框架混用时产生不一致的设计。没有任何工具能替代你对业务的理解。

原则 2:小步提交,频繁验证

技术栈转换不是一次性 Big Bang 替换,正确的节奏是:

理解 → 小范围试点 → 验证 → 扩大范围 → 验证 → ...

每次 AI 修改不超过 5-10 个文件,修改后立即运行测试、构建,确保不破坏既有功能。憋大招的后果往往是灾难性的。

原则 3:建立上下文边界

AI 工具在上下文窗口有限的项目中表现最好。在开始前务必明确:

  • 模块边界:哪些要转,哪些不动
  • 依赖关系图:谁依赖谁
  • 契约接口:模块间如何通信

没有边界意识,AI 很容易把不相关模块一起改了,引发连锁反应。

原则 4:规则先行

使用 Cursor 等工具前,在项目根目录创建 .cursor/rules/(或 .cursorrules),明确技术栈、命名规范、禁止事项和迁移策略。这相当于给 AI 写一份项目级系统提示,每次操作都会参考。


四、分阶段执行流程

Phase 0:准备阶段——建立基准

目标:摸清家底,量化现状。

  • • [ ] 统计项目总代码行数、文件数
  • • [ ] 梳理现有技术栈版本(框架、库、语言版本)
  • • [ ] 识别核心模块和依赖关系
  • • [ ] 确认目标技术栈和兼容性差距
  • • [ ] 建立 CI/CD 基线:确保当前测试全部通过,构建稳定

没有基准线,你无法判断 AI 的修改是进步还是破坏。这一步是所有后续工作的锚点。


Phase 1:AI 辅助理解,而不是直接动手改

常见误区:上来就让 AI "把这个项目从 Java 改成 Kotlin"——这基本等于让 AI 随机破坏代码。

正确做法:先用 AI 深度理解项目,再动手。

以 Cursor 为例,典型 prompt:

@整个项目 
帮我分析:
1. 这个项目的主要模块有哪些,它们之间的依赖关系是什么
2. 当前使用的技术栈版本
3. 哪些模块耦合度最高,优先需要重构
4. 总结这个项目的代码风格特点(命名、目录结构、设计模式)

Windsurf 在这个阶段的独特价值:Cascade 模式可以实时解析代码库依赖关系,实测在一个遗留系统重构项目中,用 3 分钟理清了原本需要半天才能理解的模块依赖关系。


Phase 2:小范围试点迁移

原则:选一个低风险、低依赖的模块先做。

  • • 优先选纯工具函数独立工具类
  • • 这类模块没有 UI 依赖,没有外部 API 耦合
  • • 改完后立刻运行单元测试,验证逻辑一致性

典型 prompt:

将 utils/auth.js 从 CommonJS 转换为 ES Module + TypeScript
要求:
- 保持原有函数签名不变
- 添加 TypeScript 类型注解
- 不改变内部逻辑
- 添加 JSDoc 注释

Phase 3:逐模块推进

推进策略

依赖链顺序:底层工具 → 中间层服务 → 上层业务组件 → 入口/路由

每推进一个模块前,确认三件事:

  1. 该模块的入度和出度(被谁用,用了谁)
  2. 上下游模块是否已完成迁移
  3. 是否需要生成接口适配层(Adapter)

典型 Adapter prompt:

当前模块 A 已迁移到新框架,模块 B 还使用旧接口。
请在 A 和 B 之间创建一个适配层,确保:
- A 的新接口被 B 无感知调用
- 适配层处理版本兼容和参数转换
- 改动范围最小化

Phase 4:集成测试与问题修复

  • • 全量运行单元测试 + 集成测试
  • • 用 AI 辅助定位新增的错误(有些可能是历史遗留问题,迁移前就存在的)
  • • 对比转换前后功能差异,确保无回归

五、避坑指南(血泪经验汇总)

坑 1:上下文窗口溢出

AI 的上下文窗口有限,超出后早期内容会被遗忘

症状:改了后面的文件,前面的文件风格突然不一致了。

解决

  • • 使用 .cursor/rules 项目规范文件,确保 AI 每次都有基本记忆
  • • 每次对话不超过 10-15 个文件,大项目分批处理
  • • 定期在对话中重申关键规范

坑 2:AI 擅自删代码

AI 经常会把看起来"没用到"的代码删掉,但这些代码可能:

  • • 是给其他模块用的 public API
  • • 在运行时动态调用
  • • 预留的扩展接口

解决:在规则文件中明确 禁止:删除任何文件,只做转换,或让 AI 先列出改动清单,你确认后再执行。


坑 3:混用新旧框架风格

不完整的迁移很容易出现"Vue 2 + Vue 3 混用"、"Express 风格 + Fastify 风格并存"的局面。

解决

  • • 每个模块迁移完成后,立即统一风格,不留尾巴
  • • 用 ESLint / Prettier 强制风格统一,AI 改完后跑一遍 lint

坑 4:测试被忽略

AI 生成代码往往跳过或简化测试,尤其在轻测试重交付的团队文化中。

解决:每次 AI 改完代码,强制要求生成对应测试。Prompt 示例:为这个转换后的模块生成 Jest 单元测试,覆盖率要求 > 80%


坑 5:过度依赖 AI

AI 生成代码可能存在安全隐患、性能问题或违反最佳实践

解决

  • • 对 AI 生成的代码用 SonarQube 等工具做静态分析
  • • 关键模块(认证、支付、数据处理)必须人工深度 review

六、实战 Prompt 模板库

模板 1:项目理解

@项目根目录
请深度分析这个项目:
1. 技术栈版本清单(语言、框架、关键库)
2. 目录结构及主要模块职责
3. 模块间依赖关系(可以用 Mermaid 格式输出)
4. 当前代码的总体质量评估(可维护性、复杂度、潜在风险)
5. 技术栈转换的最佳切入点(哪个模块最适合优先迁移)

模板 2:单文件转换

将以下文件从 [旧技术栈] 转换到 [新技术栈]:
- 文件路径:@具体文件
- 要求:
  1. 保持原有功能逻辑不变
  2. 遵循 [目标技术栈] 的最佳实践
  3. 添加必要的类型注解/泛型约束
  4. 更新所有过时的 API 调用
  5. 不改变外部接口(函数签名、返回值结构)

模板 3:批量模块迁移

按照以下顺序,将 utils/ 目录下的所有文件从 Lodash 迁移到原生 JavaScript:
1. 列出 utils/ 下所有文件及各自使用的 Lodash API
2. 按依赖关系排序(被引用次数少的先转)
3. 逐个转换,生成转换报告
4. 确保转换后的功能与原版完全一致

模板 4:生成迁移报告

为本次技术栈转换生成一份详细报告:
1. 共转换了多少文件,涉及多少行代码
2. 主要做了哪些改动(API 映射、架构调整等)
3. 引入了哪些新的依赖
4. 遗留了哪些未处理的技术债及后续建议
5. 测试覆盖情况

七、Cursor 专项技巧

三层能力分层

Cursor 有三层明确分开的能力,很多人一味停留在 Tab 补全阶段,从没体验过 Agent 模式的真正威力:

  • Tab 补全:写代码时按 Tab 接受预测,类似 Copilot 但上下文更多
  • Chat(Cmd+L / Ctrl+L):侧边栏对话,可以 @ 引用文件、文档、代码符号
  • Agent 模式:AI 自主读文件、改代码、跑终端命令,一次处理多步复杂任务

@ 引用机制

Chat 和 Agent 里输入 @ 可以引用:

  • @file 引用单个文件
  • @folder 引用整个目录
  • @docs 引用项目文档
  • @codebase 引用整个代码库(慎用,容易溢出)

规则文件示例

.cursor/rules/stack-migration.yaml 中定义:

version: 1
rules:
  - description: Vue 2 to Vue 3 migration rules
    match: "**/*.vue"
    generator: >
      Vue 3 Composition API only.
      Use <script setup> syntax.
      Replace Vuex with Pinia.
      Keep all props and events interface unchanged.

八、总结

阶段 核心任务 AI 介入方式
Phase 0 建立基准 AI 辅助统计和分析
Phase 1 理解项目 AI 深度分析代码库结构
Phase 2 小范围试点 AI 生成转换代码,人工审核
Phase 3 逐模块推进 AI 批量转换 + Adapter 生成
Phase 4 集成验证 AI 辅助测试生成和问题定位

技术栈转换的核心心法

慢即是快,少即是多,审即是稳。

不要试图让 AI 一次性搞定整个项目。用 AI 加速理解、加速编码,但人工审核永远是最后一道防线。技术在变,原则不变。


🔗 相关链接

  • • Cursor 官网:https://cursor.sh
  • • Windsurf(Codeium):https://codeium.com/windsurf
  • • GitHub Copilot:https://github.com/features/copilot
  • • Claude Code:https://docs.anthropic.com/en/docs/claude-code

本文由小二整理,基于工程实践经验。工具选型和数据来自公开资料评测,实际效果因项目而异,供读者参考。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-05-13 09:56:37 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/616735.html
  2. 运行时间 : 0.152354s [ 吞吐率:6.56req/s ] 内存消耗:4,793.55kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=327805d41d179c15a8281c2a9ad00658
  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.000893s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001501s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000737s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000528s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001268s ]
  6. SELECT * FROM `set` [ RunTime:0.000474s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001326s ]
  8. SELECT * FROM `article` WHERE `id` = 616735 LIMIT 1 [ RunTime:0.006800s ]
  9. UPDATE `article` SET `lasttime` = 1778637397 WHERE `id` = 616735 [ RunTime:0.020942s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000744s ]
  11. SELECT * FROM `article` WHERE `id` < 616735 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001113s ]
  12. SELECT * FROM `article` WHERE `id` > 616735 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000852s ]
  13. SELECT * FROM `article` WHERE `id` < 616735 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001515s ]
  14. SELECT * FROM `article` WHERE `id` < 616735 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002545s ]
  15. SELECT * FROM `article` WHERE `id` < 616735 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001889s ]
0.155686s