乐于分享
好东西不私藏

我用 4 天把「刷题宝」上线了:一个 AI 刷题备考工具的从 0 到 1

我用 4 天把「刷题宝」上线了:一个 AI 刷题备考工具的从 0 到 1

这几天在备考,于是——我的产品【刷题宝】上线了。(没错,除了学习,一切的进度都会很快)

准确说,代码项目代号还叫 learn-or-die-lite,但对外产品名我准备改成 刷题宝

这个名字更直接,也更符合它现在的核心能力:不讲虚的,先帮你把题刷起来。

你可以把它理解成一个很小的 H5 备考系统:建一个考试档案,把真题、PDF、教材喂进去,然后系统陪你刷题、收错题、复盘,再让 AI 基于真实学习状态给下一步建议。

听起来好像也不复杂。

但这 4 天做下来,我最大的感受是:一个产品从“能跑”到“能被别人用”,中间隔着很多很小、但很真实的坑。

这篇不是产品广告,也不是技术教程。

更像是一个产品经理,趁刚上线还没忘,把这 4 天怎么做、怎么踩坑、怎么一点点把想法压成闭环,认真复盘一下。


01 为什么要做这个?

起因非常朴素:我自己在备考 NPDP。

一个人备考的时候,最难的不是没有资料。恰恰相反,资料太多了:真题 PDF、截图、教材、笔记、别人整理的知识点。

真正麻烦的是三件事。

第一,没人催。

今天刷没刷题,全靠自觉。自觉这东西,早上看很坚定,晚上就很灵活。

第二,看不进。

真题刷完,看一遍答案,感觉懂了。第二天再做,同一道题又错。你甚至能清晰地记得:“这题我昨天好像错过。”然后继续错。

第三,没策略。

错题越积越多,教材越看越厚,距离考试还剩 N 天。你知道自己该学,但不知道今天先做哪一小步。

资料很多不等于行动清晰。刷题宝要做的是把资料、刷题、错题和复盘串起来。

所以我想造一个工具,不是帮我“收藏资料”,而是帮我把资料变成行动。

让用户把自己的备考资料喂进系统,系统帮他刷、帮他催、帮他复盘,最后拿结果。

这就是刷题宝的起点。


02 谁该用刷题宝?

今天分享之后,我反而更清楚了一件事:刷题宝不是给所有学习者的。

它更适合那些已经有明确考试目标、手里也有资料,但资料没有变成行动的人。

你只要符合下面任意一个,就很可能是它的早期用户。

有真题、有教材、想靠自己:这三类人最容易被刷题宝击中。

第一类:有真题,但没用起来。

手里囤了一堆历年真题 PDF、拍照题、别人发来的资料,甚至自己也整理过题目。但它们散在文件夹、微信聊天、相册、网盘里,看起来很多,真正能每天拿来刷的很少。

刷题宝要解决的是:把这些材料变成结构化题库,让它们真的进入你的备考流程。

第二类:有教材,但找答案很痛苦。

很多考试不是没有教材,而是教材太厚。遇到一道题,知道答案可能在某个章节,但不知道是哪一页、哪一段。

刷题宝要解决的是:把教材变成 AI 可引用的上下文。你问问题、看解析、做错题复盘时,不是只听 AI 空口解释,而是尽量回到你上传的教材出处。

第三类:想靠自己,但缺一个不掉链子的搭子。

不想报班,或者觉得报班贵,也可能只是更习惯自学。但自学最大的问题不是没人讲课,而是没人帮你把节奏拎起来。

刷题宝要解决的是:用题库、错题本、距考时间和 AI 陪学,把“今天该做什么”推到你面前。

所以它天然适合选择题为主、真题和教材价值高、复盘链路明确的考试。

比如:NPDP、CPA、法考、PMP、软考、考研、公考

当然,不是只有这些。只要你的考试高度依赖刷题和错题复盘,刷题宝都可以试。


03 上一代完整版给我的教训

这次我很刻意地加了一个后缀:lite。

因为上一代 v2,给我留下了几个很扎实的教训。

其中最刺激的是:Next 16 + reactCompiler:true,两次把 macOS 拖死,Activity Monitor 里能看到内存吃到 88G。

那一刻我沉默了。

我只是想做个学习工具,不是想让电脑学习如何原地飞升。

还有一个问题是 fork 复杂度。我从别的项目骨架里 fork,带进来一堆当时看着“以后可能有用”的东西:微信渠道、通用 skills、sqlite 路径、各种历史包袱。

结果这些“以后可能有用”,很快变成“现在一定会烦你”。

VPS 上也踩过坑。iLink 启动 22 秒后 OOM,4G 内存直接崩。根因到现在都不值得再追,因为这次 lite 的第一条原则就是:

不抄复杂度。

所以这次我从空项目起步,不 fork 任何骨架;不带微信渠道;不开 React Compiler;每加一个依赖,都问一句:现在真的需要它吗?

这不是保守。

这是一个人做产品时必须学会的节制。


04 刷题宝只做三件事

我给 P1 的边界砍得很薄。

不做社交,不做市场,不做付费,不做小程序,不做 UGC 审核,也不做一堆看起来很漂亮但还没有闭环价值的用户画像可视化。

P1 只做三件事。

第一,档案。

每个考试一个档案,填考试日期、每天投入时间、目标。档案是组织单位,题库和教材都挂在档案下面。

第二,题库。

支持手输、拍照识题、PDF 导入、AI 出题四种加题方式。新题入库时做查重,答错自动进入错题本。

第三,AI 陪学。

不是另开一个泛泛聊天窗口,而是知道你的真实状态:题库有多少、错题本堆了多少、距考还有几天、上次刷题是什么时候。

用户打开产品,不是为了看功能列表,而是为了知道今天下一步做什么。

我越来越觉得,一个 MVP 最难的不是“做哪些功能”,而是“忍住不做哪些功能”。

尤其是 AI 产品。

AI 太容易让人产生幻觉:好像什么都能加,什么都能聊,什么都能自动化。最后很容易做出一个功能很丰富、用户却不知道第一步干什么的系统。

所以我反过来问自己:

用户今天打开刷题宝,最想知道什么?

    这几个问题能回答,产品就有了第一条命。


    05 这 4 天我怎么推进

    这次开发,我给自己立了四条铁律。

    第一,约束先行。

    新项目第一件事不是写代码,而是写 CLAUDE.md。技术栈、目录结构、开发规则、上一代踩过的雷,全部写清楚。

    没有规范的工作空间不动手。

    第二,可视化原型在前。

    我先做 HTML 原型,看页面像不像一个“温柔同伴 · 学习日记”的产品,再写 React。

    这是我从 v2 学到的最大教训之一:如果一开始不看页面长什么样,后面很容易把一个错误的产品方向写得非常完整。

    第三,按 Superpowers 流程走。

    brainstorming → design doc → plan → TDD → code review。听起来像仪式感,其实是防止一个人开发时热血上头。

    一个人写产品,最危险的不是手慢,是没人拦你。

    第四,红线必先问。

    删文件、改 .env、推 Git、动 DB schema,这些都必须停一下。

    哪怕 auto-accept 开着,也不能假装自己永远不会犯错。

    4 天不是“完美产品”,而是把第一条可用闭环跑出来。

    当然,这不代表“我 4 天做完了一个完美产品”。

    更准确的说法是:我用 4 天把一个能闭环、能真实使用、能继续迭代的第一版跑出来了。

    这个差别很重要。


    06 技术栈:简单到一个人能维护

    这次技术选型非常务实。

    前端是 Vite + React 18 + TypeScript + Tailwind + React Router v6 + Zustand

    后端是 Hono + Node 22 + Drizzle ORM + PostgreSQL

    AI 能力走通义千问的 dashscope OpenAI 兼容端点:拍照识题用 Qwen-VL,PDF/AI 出题用 Qwen-Max,陪学聊天用 DeepSeek,查重用 text-embedding-v3。

    静态和 PDF 原文件放腾讯云 COS,北京 VPS 上跑后端、前端构建产物和数据库。

    我给这套架构的标准不是先进,而是一个人能维护。

    所以它有几个很明确的取舍:

    • 不做微服务。
    • 不上 Redis。
    • 不用 Next.js。
    • 不引入大而全的组件库。
    • 不为了未来十倍流量提前设计现在用不到的复杂链路。

    这听起来有点土,但上线产品需要一点土。

    尤其是个人产品。

    个人产品最怕“架构优雅,人先阵亡”。


    07 真正让我长记性的 4 个坑

    这 4 天不是一直顺的。

    恰恰是踩坑之后,产品才从“能跑”变成“能用”。

    上线前最值钱的部分,不是功能清单,而是被真实使用打出来的修复。

    坑一:PDF 同步导入太贪婪

    一开始,我把整份 PDF 文本一次性丢给 LLM。

    传 100+ 题的真题 PDF 时,问题立刻来了:输出超过 8K token 被截断,HTTP 网关 60 秒超时,用户看着页面卡住,不知道它是在努力、死掉,还是准备给我一个惊喜。

    后来改成异步任务模型:

    • PDF 文本按 chunk 切批
    • 尽量在题号边界对齐
    • 后台 worker 一批一批跑
    • 每个 chunk 做完就写库
    • 前端 1.5 秒轮询进度
    • 失败时保留已识别题目
    进度条不是装饰,它是用户信任的一部分。

    坑二:服务重启会打断 worker

    异步 worker 跑起来后,又遇到第二个真实场景。

    用户上传 PDF,任务跑到 14/41 批。我这边部署代码,systemd restart,worker 进程被杀。

    旧方案里 chunks 存在内存 Map 里,服务一重启就没了。self-heal 只能把 running job 标成 failed。

    这就很尴尬。

    后来 v0.0.8.2 改成:chunks 数组写进 DB,candidates 累积写库,worker 从 doneChunks 读起点,服务重启后 setImmediate 续跑。

    所有 worker 状态,必须能从数据库单方面恢复。

    如果恢复不了,它迟早会在上线时找你算账。

    坑三:章节识别 147 个,真实只有 7 个

    教材 RAG 也踩了一个很有代表性的坑。

    用户上传一本教材,系统识别出 147 个章节。

    听起来很努力,但真实只有 7 章。

    根因是一个贪婪正则:第 N 章 后面吞了 80 个字正文,每个 chunk 里都匹配出一个“新章节”。

    修法很朴素:cleanChapterTitle(raw) 只保留“第 N 章 + 不超过 20 个中文字符”,多余正文不要。

    从 147 个回到 7 个。

    这类问题很小,但它特别产品。

    因为用户不会说“你的正则贪婪了”,用户只会说:“这东西不靠谱。”

    坑四:登录后页面不跳转

    还有一个经典异步 race。

    输入账号密码,点登录,页面不动。手动刷新一下,进去了。

    根因是:

    setToken → navigate("/") → RequireAuth 看到 user 还是 null → 弹回登录页

    token 已经写了,但 AuthContext 的 user 还没 refresh 完。

    修复也很简单:

    setToken(jwt);await refresh();navigate("/");

    状态写了,不等于状态生效。

    所有同步跳转前,都要等异步 prerequisite 真的完成。


    08 AI 陪学:不是“加油哦”机器

    如果只做建档、题库、错题本,刷题宝也能用。

    但我真正想做的,是 AI 陪学。

    不是那种“你要坚持哦”“学习很重要哦”的泛泛鼓励。

    说实话,这种话我自己都不想听。

    我想要的是它能看着我的真实学习状态说话:

    “你错题本有 28 道积压了。”

    “距考还剩 23 天,今天别再加新题了,先清错题。”

    “上次刷题是 3 天前,先来 10 道暖暖手。”

    “教材第 4 章已经解析好了,你这道题可以回到那个章节看。”

    传统数据看板是给人看的,AI 陪学是把看板直接变成行动建议。

    这次我给 AI 陪学设计了一个核心 prompt:把 profile 和 stats 注入进去,再给它几条硬约束。

    • 控制 200 字内
    • 给具体可执行建议
    • 错题本超过 20 道,优先清积压
    • 距考小于 30 天,进入冲刺策略
    • 不陪聊离题,不顺着拖延

    我把它叫做:

    对话即数据看板。

    这可能是这次我最喜欢的一个小发明。


    09 视觉:让刷题工具不冷

    刷题宝的视觉风格,我没有做成冷冰冰的效率工具。

    它更像一个学习日记本。

    米纸背景、深墨文字、砖红强调、蜜黄高亮、厚黑边、轻微立体阴影,再加一点手写感。

    我给它的定位是:

    温柔同伴 · 学习日记。

    但这里有个边界:温柔不等于软萌。

    学习工具如果太软,会像玩具。备考这件事本身有压力,产品可以降低心理负担,但不能把行动骨架拿掉。

    所以我保留了 neo-brutalist 的厚黑边和硬阴影:按钮要像按钮,卡片要像卡片,关键数据要站得住。

    早期高保真视觉稿:米纸、厚边、圆润气泡,以及一点学习日记本的温度。

    这个风格不是为了好看而好看。

    它想传达的是:你不用被考试压着跑,我们今天先做一小步。


    10 现在能拿它干什么?

    现在的刷题宝,已经能跑完整个个人备考闭环。

    你可以先建一个备考档案,填考试日期和每天投入时间。

    然后把资料喂进去。手输一道题可以,拍真题书可以,传 PDF 可以,也可以让 AI 根据知识点出题。

    题目进来后,系统会做查重。相似度高的题会提示你新旧对比,答案不一致也会提醒你核对。

    刷题时,答错自动进错题本。连续答对 3 次,可以从错题本移除。

    如果你上传了教材 PDF,系统会按章节切片、做 embedding。后面问 AI 时,它可以带着教材引用回答,尽量不让概念变成“AI 编得挺像”。

    AI 陪学则会根据你的真实状态给建议,而不是开口就“继续加油”。

    评论区可以见到产品地址和github开源代码,手机浏览器(非微信自带浏览器哦)和电脑都能打开。

    当前还是 HTTP 明文 demo 版,不要上传隐私敏感资料。下一版要先补 HTTPS 和数据备份。


    11 我对下一步的计划

    刷题宝接下来不会冲“功能大全”。

    第一阶段:更稳更深地坚持

    补学习进度条、打卡计划、每日任务、阶段提醒。让用户每次回来都知道“今天做什么”。支持更多题型和题源能力。

    第二阶段:完成后有结果

    做归档通赛、考试成就、上岸记录、复盘报告。备考不是无限苦熬,它应该有一个被看见的终点。

    目标就是:把一个人的学习闭环了

    也希望大家能多多与我交流,提出宝贵的意见。


    写在最后

    做完这个版本,我最大的感受不是“AI 开发真快”。

    当然,它确实快。

    但更准确地说,是 AI 把个人产品开发里很多“原本要靠团队补位的能力”,暂时借给了我。

    它帮我写计划,帮我拆任务,帮我跑测试,帮我查 bug,帮我把一些模糊想法压成结构化产物。

    但它没有替我做产品判断。

    范围要不要砍,坑要不要修,体验是不是可信,数据要不要落库,用户看到这句话会不会焦虑。

    这些问题,最后还是人来判断。

    刷题宝现在还很早。

    它肯定会有 bug,会有不好用的地方,会有很多“这里怎么这么别扭”的瞬间。

    但它已经不是一个想法了。

    它能被打开,能建档,能加题,能刷题,能复盘,能在你拖延的时候看着数据提醒你。

    对我来说,这就够它开始活了。

    如果你正在备考,资料很多、错题很多、每天都觉得自己应该学但又不知道从哪下手,可以试试看。

    把卡住你的地方告诉我。

    你的反馈,就是下一个版本的需求。

    关于作者

    在瓶,业务型产品经理,为追求好用的产品孜孜不倦的探索。在把 AI 产品从“能聊”推进到“能进入真实业务闭环”。主攻供应链领域产品,也会随时随地的在探索为生活服务的小工具。

    本文基于刷题宝 App 2026 年 5 月上线过程整理,保留真实踩坑和取舍。

    基本 文件 流程 错误 SQL 调试
    1. 请求信息 : 2026-06-25 06:16:25 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/648854.html
    2. 运行时间 : 0.093120s [ 吞吐率:10.74req/s ] 内存消耗:4,674.88kb 文件加载:145
    3. 缓存信息 : 0 reads,0 writes
    4. 会话信息 : SESSION_ID=4fa74e416a265367d22f76ddf2329514
    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.000506s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
    2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000642s ]
    3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000321s ]
    4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000291s ]
    5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000617s ]
    6. SELECT * FROM `set` [ RunTime:0.000239s ]
    7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000593s ]
    8. SELECT * FROM `article` WHERE `id` = 648854 LIMIT 1 [ RunTime:0.000502s ]
    9. UPDATE `article` SET `lasttime` = 1782339385 WHERE `id` = 648854 [ RunTime:0.000969s ]
    10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000274s ]
    11. SELECT * FROM `article` WHERE `id` < 648854 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000440s ]
    12. SELECT * FROM `article` WHERE `id` > 648854 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001921s ]
    13. SELECT * FROM `article` WHERE `id` < 648854 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001152s ]
    14. SELECT * FROM `article` WHERE `id` < 648854 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001894s ]
    15. SELECT * FROM `article` WHERE `id` < 648854 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001637s ]
    0.094724s