乐于分享
好东西不私藏

从 IDEA 到 App 的 AI Native 项目流程

从 IDEA 到 App 的 AI Native 项目流程

从 IDEA 到 App 的 AI Native 项目流程

目标

在之前发布的的博客中,我已经介绍了我的脚手架(Java) + Docs 文档体系,今天这篇长文,我会详细介绍我用 Coding Agent ,通过使用我的 AI Native Project Template,管理需求、统一语言、文档、计划、测试,把 IDEA 落地成一个应用,本文不包含商业验证和变现相关内容。

前置条件

  • • 已经有一个相对明确的产品 idea,不需要非常完整,但是至少能说清楚核心功能
  • • 已经安装或准备使用 AI Native Project Template:
    • • GitHub 地址:https://github.com/ryan-alexander-zhang/ai-native-project-template
    • • CLI 地址:https://github.com/ryan-alexander-zhang/ainpt
  • • 本文使用english-copilot 作为 demo:一个英语学习助手 Web 应用。

AI Native Project Template 是我搞得一个模板项目,不是一个完整应用脚手架。没有预设前端框架、后端框架、部署平台,是一套 docs-first 的项目工作模板,安装ainpt 并创建项目ainpt create english-copilot 。

整体链路

这套流程的核心是:

idea -> prd -> spec(link user story) -> design -> decision(optional) -> plan -> coding -> verify
  • idea:还没有完全产品化的想法,记录问题、初始能力、边界和早期判断。
  • prd:产品需求,说明为什么做、给谁用、做什么、不做什么。
  • spec:系统视角的规格,说明系统到底应该做什么。
  • us:User Story,核心,挂在 spec 下面,承载用户价值视角的需求描述,含EARS 需求和 GWT 验收。
  • design:跨功能或者结构性的技术设计,比如领域模型、数据模型、状态机等
  • decision:有取舍的产品、技术、架构决策(ADR)
  • plan:具体如何实现,拆任务、列文件、列验收

项目模板要求每个主要文档都有 front matter,通过 front matter 管理类型、状态和 Link,唯一 ID 可全局检索,

---id: <type>-<five-digit-number>-<slug>type: idea|prd|spec|us|design|decision|plan|issue|...role: mainstatus: draftparent: <upstream-id>---

parent 很关键,用来串联上下游文档

idea-00001-english-learning-copilot  -> prd-00001-english-learning-copilot    -> spec-00001-auth-accounts      -> us-00001-register-email-password      -> plan-00001-auth-accounts

这样做的好处是,后面 review、补需求、修 bug 的时候,Agent 能顺着文档链找到“当初为什么这么做”,而不是只看当前代码猜。

步骤一:先得有个 IDEA

先得有一个 IDEA,本文会以一个英语学习的 Web 应用举例

我有一个idea,做一个英语学习的助手1. 预设系统级别单词本,比如预设CET4、CET6,单词本可以设置 include 和 exclude,与后文有关2. 用户可以创建用户级别单词本,然后可以添加单词,添加单词时可以输入一个或多个例句,每个例句可以对应一个 URL。每个用户初始化都有一个默认的单词本,相关操作如果没有选择单词本都会添加到这个默认单词本中。3. 用户可以在设置页面配置多个外部词典的 template url,比如有道词典的https://www.youdao.com/result?word={argument name="word"}&lang=en,这样每一个单词可以跳转到外部的词典中4. 可以通过浏览器插件 Clip 网页为 Markdown 成为一份系统内部的学习材料,这份材料中的单词,如果命中了include,则高亮显示,如果命中了 exclude 则不高亮显示,同一个单词如果同时在include 又在exclude,exclude 优先级更高5. 在查看学习材料详情页,用户可在文章中选中句子添加注解,注解可以设置描述和颜色,注解可以单独查看,注解也可以编辑和删除6. 在查看学习材料详情页,用户可以在文章中选择单词,添加到单词本中,单词本可选择,没有选择则添加到默认用户级别单词本7. 用户可以分享学习材料,包括添加的标注,分享后会有一个只读链接,可以Public 访问8. 登录认证,可以注册、登录,也可以用 Google 登录认证

步骤二:创建项目

使用 AI Native Project Template 创建项目:

ainpt new english-copilot
20260704102449208.png

文件大概说明:

  • ARCHITECTURE.md:当前系统形态、技术栈、模块结构、边界。
  • AGENTS.md:Agent 在这个 repo 里工作的规则。
  • CONTEXT.md:从CONTEXT_TEMPLATE.md 创建出来的项目统一语言。
  • DEVELOPMENT.md:开发阶段、命令、Definition of Done,微调
  • TESTING.md /UNIT_TESTING.md /INTEGRATION_TESTING.md /API_TESTING.md /E2E_TESTING.md:测试分层和命令,其中API_TESTING 我固定为 Bruno,其他都需要进行调整。
  • DOCUMENT.md:文档管理规则。
  • THIRDPARTY.md:外部依赖、参考资料、第三方代码来源。
  • docs/README.mddocs/ 目录分类和 front matter 规则。

步骤三:先统一语言

为什么要做这件事?举个例子,比如单词本语义,在语言表述中,我们可能会用单词本、WordBook、WordsBook、Vocabulary、单词数据库等等各种各样的词汇都可能会使用,如果不约束 AI,有可能就会出现各种各样的表达。等 Agent 用grep|rg 去检索词的时候,如果模型没有把这些词汇罗列,就漏掉了。CONTEXT.md  作为 Agent 后续写ideaprdspec、代码、测试时的词汇事实源,新词需要注册,语言一统一,就能减少后续因为关键词检索导致的上下文丢失的问题。

项目初期保留的CONTEXT.md 内容:

# English Learning Copilot ContextThe shared glossary for the app that turns clipped web pages into personalizedEnglish study material. One canonical term per concept; use these exactly.## Language### Vocabulary**Wordbook**:A named collection of word entries. A **system wordbook** is preset and shared(e.g. CET4, CET6) and is read-only to learners; a **user wordbook** is createdand owned by a learner. Each learner has exactly one **default wordbook** thatreceives word-adds when none is chosen._Avoid_: word list, vocabulary book, deck, set.**Word entry**:One word inside a wordbook, optionally carrying example sentences._Avoid_: word item, vocab, term, lemma (a lemma is the matching result, not the entry).**Example sentence**:A sentence attached to a word entry, with an optional source URL._Avoid_: usage, sample, quote.**Highlight mode**:A per-learner setting on a wordbook that drives highlighting: **HIGHLIGHT**(highlight its words), **EXCLUDE** (never highlight them; wins over HIGHLIGHT),or **NORMAL** (no effect, e.g. the default wordbook). Set per learner, so ashared system wordbook can be HIGHLIGHT for one learner and NORMAL for another._Avoid_: include/exclude sets, whitelist/blacklist, allow/deny list.### Reading**Learning material**:A web page clipped into Markdown and stored in the app. It is a one-timesnapshot, never re-clipped from the source._Avoid_: material, article, document, doc, page, clip (the noun).**Clip**:The act of capturing a web page as a learning material via the browserextension. Verb only._Avoid_: import, scrape, save, capture.**Highlight**:The visual marking of a word in a learning material because its lemma is in aHIGHLIGHT-mode wordbook and not in any EXCLUDE-mode one. Matching is lemma-basedand case-insensitive (`Running` matches `run`)._Avoid_: mark, flag, emphasize.**Annotation**:A learner's note on a selected sentence in a learning material, with adescription and a color. Editable and deletable; not auto-re-anchored when thematerial text changes._Avoid_: note, comment, highlight (highlight is vocabulary marking, not a note),markup.### Sharing & Config**Share link**:A read-only, public, no-login URL to a learning material and its annotations. Alive view that reflects later edits._Avoid_: public link, share URL, permalink, snapshot link.**External dictionary template**:A learner-configured dictionary URL with a `{word}` placeholder, used to open aword in a third-party dictionary._Avoid_: dictionary URL, lookup template, dict link.## Flagged ambiguities- **Highlight** vs **Annotation**: both are visual on a material. "Highlight" is  only the automatic vocabulary marking driven by wordbook highlight modes. A  learner's colored note on a sentence is always an "annotation", never a  "highlight".- **Clip** (verb, the action) vs **Learning material** (noun, the result). Never  call the stored material a "clip".

步骤四:把 IDEA 落盘到docs/idea/

把 idea 让 AI 落盘到docs/idea/ 下:
freeze.png

这里的README.md 中有对idea 类型简单说明和模板,所以 Agent 会格式化文档,这就是整个业务的开始。

步骤五:从 IDEA 到写 PRD

让 AI 根据:

docs/idea/idea-00001-english-learning-copilot.md

写 PRD 并:

docs/prd/prd-00001-english-learning-copilot.md

PRD 的 front matter 里,parent 指向上游 idea:

---id: prd-00001-english-learning-copilottype: prdrole: mainstatus: activeparent: idea-00001-english-learning-copilot---

步骤六:确定技术栈和项目形态

有了 Idea 和 PRD 后,就需要考虑技术栈了。这部分需要一定的技术沉淀、调研能力和判断力。

针对本文中这种工具向应用,能有可用的框架复用的就复用。用框架的好处就是有参考、可组合,劣势就是认知负担会重一些,需要学习框架。但是在 AI 时代,获取知识和学习比以前要容易很多。所以第一时间不考虑任何造轮子的事情,重要的是把东西做出来、用起来,后续迭代过程中,再考虑 enhance、replace 等,并且可以在已用框架的基础上借鉴一些实现方案,后续可以瘦身。我的经验是,先做加法再做减法。

本次选用的技术栈:

Area
Choice
Runtime / package manager
Bun
Framework
Next.js (App Router, TypeScript) — React Server Components, Server Actions, and Route Handlers
UI
Tailwind CSS + shadcn/ui,lucide-react icons, GSAP for landing-page and complex animations
Auth
Auth.js v5
 (NextAuth) +@auth/prisma-adapter; Google provider + Credentials provider;bcryptjs for password hashing
ORM / Database
Prisma + PostgreSQL
Validation / forms
Zod + React Hook Form (@hookform/resolvers)
Web clipping
Defuddle (content extraction + HTML→Markdown), studied from Obsidian Web Clipper — seeTHIRDPARTY.md
Material rendering
react-markdown
 +remark-gfm +rehype-sanitize
Highlight matching
wink-lemmatizer
 (lemma-based, case-insensitive)
Browser extension
WXT (planned; separate build target, deferred until the web app lands)
Testing
Vitest +@testing-library/react (unit/component), Playwright (E2E), Testcontainers PostgreSQL (integration)
Lint
ESLint

步骤七:项目根目录工作流和规格文件适配当前项目

AI Native Project Template 的README.md 里有根据模板创建项目后需要自定义的说明,这些需要自定义的还是要改一下,需要根据实际项目、语言、框架等做出调整。最后封装成Makefile make 调用,目的是可以在本地随时让 Agent 启停中间件、运行测试、运行项目等。比如make dev 启动,make test 跑测试,make e2e 跑端到端测试等。

english-copilot 里,Makefile 的入口:
freeze.png

步骤八:写 Spec 和 User Story

按照 AI Native Project Template 定义的 Doc 模型:

spec:us = 1:n

Spec 文件说明 Do What 和 Design,内联或者挂载docs/design 文件。模板中,使用EARS 描述系统视角需求项,使用GWT 编写验收细则,最后让 Agent 生成plan,后续根据这个plan 开始 coding。

english-copilot 里的 Demo
freeze.png
User Story 的一个 Demo:

可以看到,需求和验收都结构化且具有唯一 ID,这样可以在任何地方进行 Link。

步骤九:Design Doc

小 spec 可以 inline design,但如果涉及跨多个功能或者比较大,就应该单独写一个 Design,另外,Design 甚至可以单独编写,后续再挂载,比如一些系统切面功能(限流、熔断、高并发、优化方案等)的预 Design。

比如 parent 指向 PRD/SPEC 等需要 Design 的地方

---id: design-00001-data-modeltype: designrole: mainstatus: activeparent: prd-00001-english-learning-copilot---

步骤十:让 Agent 生成 Plan,再开始 Coding

编写代码之前根据 spec 生成 plan,如果 plan 太大可以拆分成单独的 task 文件,实践过程中觉得过度涉及了,没有拆过。

在这个 demo 里:

docs/plan/plan-00001-auth-accounts.mddocs/plan/plan-00002-wordbooks.mddocs/plan/plan-00003-materials.md
plan-00002-wordbooks.md 为例,内容如下:

步骤十一:实现、测试、验收、记录

有了 plan 之后,可以根据 plan 进行 coding ,通过测试门禁后更新结果。在 demo 里,plan-00002-wordbooks.md 最后的结果记录 是:

All tasks done. Domain lib (T1–T6) + server actions (T7) + UI (T8: `/wordbooks`,`/wordbooks/[id]`, `/settings`) + E2E (T9). Verified: `make build` + `make lint`clean; 34 unit/integration tests at 100% `src/lib` coverage; 4 E2E specs pass(auth + wordbooks: create → set mode → add word, and the `{word}` rejection).

另外,关于验收,除了必须的人工验收,可以使用 Sub Agent 从文档出发去验证代码,去读 spec 的 EARS 和 GWT 去做验证,是否真的完成了,是否有对应的测试且测试通过了。

步骤十二:Issue Fix

如果出现 Issue,先落盘 Issue 文件,使用第一性原理 Debug 落盘现象、复现流程以及 Fix 方案后进行 Fix,这样可以做到 Issue 可观测、可跟踪、可审计。

比如一个简单的 Issue Demo:

demo 的文档结构

贴一个过程中的文档结构:
freeze.png

总结

  • CONTEXT.md 里有项目统一语言,并且 spec / design / code 使用的是同一套词。
  • docs/idea/ 里有最初产品想法,状态不是随便留在draft
  • docs/prd/ 里有 PRD,并且parent 指向 idea。
  • docs/spec/ 里有可实现的功能规格,并且parent 指向 PRD。
  • docs/us/ 里有挂到 spec 下的 User Story,EARS 和 GWT 能互相对应。
  • • 有跨功能设计时,放到docs/design/,不要散在多个 spec 里。
  • • 有真实取舍时,写docs/decision/,不要只把选择写成结论。
  • docs/plan/ 里有实现计划,能看到任务、文件、需求映射和验收路径。
  • Makefile 能启动、测试、构建、迁移数据库。
  • • plan 结束后记录实际做完了什么、跑了什么验证。

另外这个 Demo 是在一个 Session 中完成的,让 AI 总结了一下 Session 中的人机分工如下图:

image.png

常见坑

  • 先写代码,后补文档:这样 Agent 一开始没有稳定上下文,后面补的文档也容易变成事后说明。
  • 不写CONTEXT.md:短期看省时间,长期会让概念发散,尤其是中英文混用时,检索会漏。
  • PRD 和 spec 混在一起:PRD 说产品要什么,spec 说系统做什么,plan 说怎么做。混在一起后,Agent 很难判断自己该执行哪一层,所以 PRD 给人看,用来产出 spec,下游尽量不依赖 PRD。
  • 有取舍但不写 decision:可能就不记得当时为什么要这么做了,只剩个 pr 或者 commit。比如过几天就忘了为什么选 Auth.js、不选 Clerk;为什么先做 web app、不先做 extension。
  • Makefile 没有稳定入口:每次都重新告诉 Agent 怎么启动、怎么测,会浪费上下文,也容易跑错命令。
  • Plan 没有验收路径:Agent 写完了,但不知道要跑哪些测试,也不知道失败后该回到哪个需求。
  • Outcome 不记录:实现完成后没有证据沉淀,后续 review 和 debug 都要重新考古。

后续

  • • 继续完善文档模板和工作流
  • • 后续打算多探索下关于验证的方法,目前通过覆盖率、变异测试可以提高单元测试的质量,但是在符合业务语义的测试用例生成中依然是不如意,还是需要大量的人力去写测试用例,另外涉及浏览器的E2E 测试的成本、环境等都是需要考虑的角度。总而言之,在 AI 时代,写代码去实现需求这件事变得成本不高了,工程上更多聚焦于怎么验收、怎么 Review、怎么提高效能和质量上了。
  • • 这个英语学习助手 Demo 的 UI Design,按照经验,Claude Design 还是香,也可以使用 Open Design 但要用 Claude 模型,Codex 可以使用image2 生成图后转 UI 或者直接落地代码,但可修改性上不太够。
基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-24 06:37:41 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/835785.html
  2. 运行时间 : 0.233342s [ 吞吐率:4.29req/s ] 内存消耗:4,863.13kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=b9e3e45c5782b64be54a5fa191a145eb
  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.001086s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001967s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.054037s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.008173s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001636s ]
  6. SELECT * FROM `set` [ RunTime:0.041401s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000874s ]
  8. SELECT * FROM `article` WHERE `id` = 835785 LIMIT 1 [ RunTime:0.004870s ]
  9. UPDATE `article` SET `lasttime` = 1784846261 WHERE `id` = 835785 [ RunTime:0.008567s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000315s ]
  11. SELECT * FROM `article` WHERE `id` < 835785 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.003107s ]
  12. SELECT * FROM `article` WHERE `id` > 835785 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000590s ]
  13. SELECT * FROM `article` WHERE `id` < 835785 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.006481s ]
  14. SELECT * FROM `article` WHERE `id` < 835785 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.008028s ]
  15. SELECT * FROM `article` WHERE `id` < 835785 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.006746s ]
0.235132s