跳到内容
当前位置:首页>APP源码>不写一行代码,从零做了一个桌面APP!(保姆级教程)

不写一行代码,从零做了一个桌面APP!(保姆级教程)

  • 2026-09-25 00:23:10
不写一行代码,从零做了一个桌面APP!(保姆级教程)

最近这段时间,比较沉迷于研究各种小玩意。

一方面,在花精力去做好一个小工具。

另一方面,还需要把我这套制作流程写出来。

可以为大家去vibe coding的时候有个思路。

作为一个内容自媒体博主来说,写稿子是一项必然要面临的事情。

文章写完其实只是第一步,发布前还要面对一轮又一轮的审核。

审核文章有没有什么不合适的地方,内容通不通顺,有没有错别字等等。

我经常需要处理不同类型的文稿:教程、产品实测、场景化评测的文章等。

写文章对我来讲其实不算最费时间的部分。

因为每种文章的审核标准还太不一样,所以每一次写完文我都需要耗费大量的精力去通读修改文章。

如果每次都打开文档,翻出对应的写作规则,再一条条对照,工作效率就会非常低,而且很容易漏掉某一类问题。

所以我就冒出一个想法:

干脆给自己定制一套审核工具

我可以自己定义不同场景的规则,工具按照规则检查文章。

根据我选中的这些标准,把问题、原文位置和修改建议都一一整理出来。

已关注
关注
重播 分享 赞

这篇文章,我将把我开发软件的整个过程还原出来,供大家学习:

如果觉得有帮助,记得关注支持哈。

“

我如何和 GPT 聊想法,怎么把规划交给 Codex 开发,又是怎么一路改到可以安装、可以发布的桌面软件。

第一步:我先确定它应该是个什么产品

如果你也想做一个自己的工具,第一步不用急着让 AI 写代码。

我先把自己要解决的问题直接说给 GPT 听:

我想做一款文章检测系统,就是,结合我们设定的一些方面,关注的一些点,依次来给我写的文章来生成修改评分和指导建议点,你觉得我们这套系统应该如何来开发,他应该以一个什么样的产品做出来;

这句话有两层意思:

第一层,是让它根据我的一个大致需求,确定我的核心需求。

第二层,是它最后应该以什么产品形态存在,更方便我去使用。

第二步:确定第一版的开发边界

这一步,不要继续往功能里一个劲的堆想法,先限定第一版只需要完成什么。

这时候比较常见的一个问题就是,AI 很会给你提点子,给你列出来一堆看起来很好的功能。

但是这里一定要把持住,我们确保当前的目的是把核心功能先开发出来。

也就是所谓的 MVP 版本。

根据前面 GPT 给我的建议,我开始给它补充我的重点想法:

我目前需要的就是第一版的功能,我会把我的文章要求看重的点放进去,作为审查的点,作为一个维度评测点;

第一版先不追求让工具解决所有写作问题。

先把我看重的文章要求放进去,变成可被检查的评测维度。

这样,GPT 整理开发方案时就有了明确的取舍:

“

优先做规则、评测和结果,不急着加云端同步或团队协作等复杂功能。

对于做工具的人来说,这一步很重要,先说明你愿意舍弃什么,才能让第一版真正落地。

第三步:明确自己想要的核心功能

明确第一版以后,我开始描述自己希望怎样用这些规则:

我其实想的一点是,我会把每一个需要注意的点,添加成长条标签,然后,我会按照不同类型的分类文章,去做分组,每个分组里面我去勾选中对应的标签,以后,每个分组就表示我对一种文章的整体评测方向,而且我后面还可以自定义增加各种细小标签进去,增加评测维度

这句话就是在确定我这个工具的核心结构了:

“

一条注意事项是一个标签;一篇文章属于哪种场景,就选对应的评测组;评测组里再勾选需要的标签。

它的流程就是:

文章类型 → 评测组 → 勾选的标签 → AI 检查 → 评分和修改建议

再往后,我根据 GPT 提供的分类维度,做了一些筛选后,将评测标签做了一些细节上的区分,可以方便我找寻对应的标签。

现在,GPT 已经基本上把我的需求搞清楚了,接下来就是确定我们的工具形态。

第四步:确定最终工具形态

规则模型确定后,我就继续讨论技术实现和成品形态:

这些够用了,现在我们来讨论技术实现方面,说说底层分析的功能,比如AI接入这些,另外,是我们最后要做出来的成品是什么样的,我感觉做成桌面desktop好一点,你觉得呢。

这时,GPT 是在前面已经聊清的需求之上,继续整理 AI 接入、数据保存和桌面端形态,而不是凭空替我设定功能。

最后形成的第一版开发文档,确定了本地优先的桌面工具,并把页面拆为文章评测、标签库、评测组、历史记录和模型设置。

技术方案服务于这个目标:让规则能保存、让模型能执行检查、让报告能回到原文,不要展示一堆专业术语。

产品方向清楚后,我就和它讨论,给我这个工具一个名字,最后就定成 Rubriq 吧。

第五步:让 GPT 整理开发文档,再交给 Codex 开始开发

到这里,GPT 已经完成了它最适合做的工作:

把我零散的审核经验、第一版边界、标签分组和桌面形态整理成开发文档。

接下来,不用复制对话或者截图对话内容,把前面的对话在 Codex 中使用 @ 直接引入开发任务里,告诉他开始开发。

这样可以减少重复解释和上下文消耗,也算是一个小tip。

我发现,对小白来说,最稳的路径是:

“

先让它基于开发文档做出能打开的版本,再按照页面和真实使用过程一点点往下走。

Codex 也会自动按架构搭建顺序去实现基础功能上的开发。

第六步:先做出能点击的版本

第一版出来以后,我看到的是一个可以打开的桌面窗口,以及几个基础页面。

这时候,我已经可以开始去使用并检查它了:

  • 我能不能新建一个分类?

  • 能不能写一条规则?

  • 能不能把规则放进某个评测组?

  • 输入文章以后,报告能不能指出具体哪一段有问题?

开发工具和写文章其实很像。

先不要追求一次写出最终版本,先拿出一个可以被使用、可以被挑错的版本。

只有真的用起来,很多问题才会暴露出来。

比如,我很快发现评分不能只显示一个总分。

我更需要看到是哪条规则出了问题,原文在哪一段,下一步应该怎么改。

所以工具后来加入了段落定位。

文章进入检测前会被拆成 P001、P002 这样的内部编号,AI 返回问题时可以指向具体段落。

第七步:一次解决一个问题

后面的开发,基本就是我操作软件,发现问题,再把问题交回给 Codex。

我在描述的时候尽量说清楚三件事:

我做了什么、实际看到了什么、我希望它变成什么样。

比如导出功能一开始不能正常使用,我直接告诉他:

标签的导出按钮点击没有效果,优化

Codex 查完以后发现,浏览器的下载方式不能直接当成桌面软件的文件保存方式,于是把 Desktop 导出改成了系统保存对话框。

之后我又补充了导出目录的要求:

导出时要自定义目标目录

再或者,系统的提示弹窗还没有做UI设计,而且 Codex 还能识别图片,那就截图批注+描述,更加精确的修改问题。

这些对话看起来都很普通,但可以让Codex听懂的话就是好指令。

实际上手操作  → 发现问题  → 描述现象和预期(提供截图)  → Codex 检查代码并修改  → 重新运行  → 再次判断

这也是我最建议小白采用的方式。

你不需要懂事哪一个文件、哪一行代码错了。

你要做的是把问题复现出来,把“现在这样”和“我希望怎样”告诉 Codex。

你负责判断什么叫好用,Codex 负责在陌生项目里找实现路径。

第八步:让工具真正适合自己的文章流程

当基本功能跑通以后,我又把自己的写作规则逐个放进了工具里。

每条规则都尽量写成平时遇到的具体细节,不要只放一句无头无脑的“检查质量”。

例如,前面规格文档里已经出现过“不要冒充亲测”这条规则。

它后来被放进“真实性”分类,作为一条可以加入评测组的检查项。

这里展示的是已经整理出的产品规则,不把它改写成我当时没有说过的提示词。

这样一来,工具并不依赖某一套固定的标准答案。

我的写作流程变化以后,可以自己修改规则,以后即使在给视频脚本、课程资料或产品说明书做检查,也可以重新组合一套专用评测组。

这就是我觉得自己做工具最有价值的地方。

你做出来的东西不一定一开始就比成熟软件功能多,但它会更贴近你每天真正的工作场景。

第九步:从网页预览走到桌面软件

为了让开发快一点,Codex 会先把前端页面跑在浏览器里。

浏览器预览适合改界面,但我需要的工具最终要安装到电脑上使用,所以后面还要加上 Tauri 的桌面壳。

这个过程可以简单理解成:

“

前面的页面负责显示和交互,Tauri 负责把它变成一个可以安装的桌面程序,并处理本地文件、数据保存和系统能力。

这一步也暴露了几个浏览器里看不出来的问题:

  • 桌面软件的数据要能在关闭后保留;
  • API Key 不能跟着规则包一起导出;
  • 导出规则时要弹出真正的系统保存窗口;
  • 浏览器能点击,不代表打包后每个按钮都能工作。

所以我后来打算直接打包出来第一版,按完整流程测试。

这一步的技术细节可以交给 Codex,但测试顺序最好由你自己设计,因为只有你知道这套工具日常要怎么用。

第十步:把桌面程序打成安装包

当核心流程稳定以后,我让 Codex 继续处理打包。

Windows 本地打包的命令很简单:

npm run desktop:devnpm run desktop:build:nsis

前一条用于启动桌面开发版,后一条生成 Windows NSIS 安装包。

这次实际生成的文件是:

src-tauri/target/release/bundle/nsis/Rubriq_0.1.0_x64-setup.exe

拿到安装包以后,我还要重新安装、打开、操作,确认它和开发环境里的页面表现一致。

如果你第一次做桌面软件,建议把打包单独作为一个阶段。

页面能运行、项目能编译、安装包能生成,是三件不同的事情。

第十一步:用 GitHub Actions 做多平台构建和发布

Windows 本地打包成功以后,我又让 Codex 帮我把后续发布流程放到 GitHub Actions 里。

我没有把“构建”和“发布”塞进同一个按钮,而是拆成两个工作流:

Build installers

负责在 Windows、macOS 和 Linux runner 上构建安装包,再把每个平台的文件保存成 Actions artifact。

Publish Release

负责找到一次成功的 Build installers 运行,下载构建产物,然后创建 GitHub Release。

这两个工作流分开以后,出了问题更容易定位:到底是代码没有构建成功,还是发布权限出了问题。

小白照着做,可以记住这 5 步

如果你也想做一个属于自己的工具,可以把过程压缩成下面这五步:

1. 先把需求说成一个具体场景

先说清楚你产生该需求的实际场景,以及想要让它帮你做哪些工作。

2. 控制住第一版的边界

确保你的目标功能满足要求,不要在意当前工具做出来的好看不好看。

UI设计这一块其实是最简单的部分,后面想怎么改就怎么改。

3. 确定产品形态

有了前面的思路,开发前要知道自己最后要做出来一个什么形态的工具。

是一个桌面产品还是一个网页工具?

4. 让 GPT 整理开发文档,再引入 Codex

让 GPT 先把产品逻辑、第一版功能和成品形态整理好;Codex 直接沿着已有对话开始开发,可以少重复说明需求,还省token。

5. 用真实操作迭代,再完成打包

先做出能点击的版本,再把每次发现的问题说清楚。

核心流程跑通后,才做 Windows 安装包、多平台构建和 Release 发布;每一层都要实际验证。

最后想说的话

开始,我每天审核文章太依赖手工检查。

后来,我把自己的审核流程说给 GPT 听,让它帮我整理成产品规划;

这份规划交给 Codex,让它进入项目、修改代码、处理问题和完成打包。

最后得到的 Rubriq 这个产品。

目前它不是一个功能完整的商业软件。

但它已经变成了一套可以持续添加规则、运行文章检测、保存结果并打包安装的桌面工具。

这个工具的基础功能已经实现了,最近在开始沿着我的使用习惯,继续完善优化。

目前这个工具确实帮我节约了不少时间,要不我真没时间写更多高质量的文章给大家学习了。

后续,我也会根据大家的需求程度,来决定是否将这套工具开源给大家下载,可以期待一波。

这次的桌面 APP 开发过程让我确定了一件事:

小白做工具的起点,是要能把自己的核心流程说清楚。

你知道什么算合格,GPT 可以帮你把想法整理成方案,Codex 可以帮你把方案推进成项目。

中间真正不能省掉的,是你亲自打开软件、实际操作、指出哪里不对,再让它继续修改。

相信看了这篇文章后,你也可以从一段对话开始,做出一个贴近自己工作方式的工具了。

AI 时代真好呀,短短一个月时间,我已经开发了很多款小产品了。

很多人,也给我反馈,使用体验特别好。

或许,我的产品梦,真的开始了。

如果觉得不错,随手点个赞、在看、转发三连吧,如果想第一时间收到推送,也可以给我个星标⭐~谢谢你看我的文章,我们,下次再见。
我是维克兹,前程序员、现创业者。
目前主要关注 AIGC 人工智能,资深燃劲AI鼓励师,希望分享好用的AI工具,AI应用技能,激发你对AI的好奇。
基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-09-26 07:14:53 HTTP/1.1 GET : http://g.sjds.net/a/459216.html
  2. 运行时间 : 0.077239s [ 吞吐率:12.95req/s ] 内存消耗:4,420.31kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=f489b2320bd6366a74eb87a37a586111
  1. /www/wwwroot/g.sjds.net/public/index.php ( 0.79 KB )
  2. /www/wwwroot/g.sjds.net/vendor/autoload.php ( 0.17 KB )
  3. /www/wwwroot/g.sjds.net/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /www/wwwroot/g.sjds.net/vendor/composer/platform_check.php ( 0.90 KB )
  5. /www/wwwroot/g.sjds.net/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /www/wwwroot/g.sjds.net/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /www/wwwroot/g.sjds.net/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /www/wwwroot/g.sjds.net/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /www/wwwroot/g.sjds.net/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /www/wwwroot/g.sjds.net/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /www/wwwroot/g.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /www/wwwroot/g.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /www/wwwroot/g.sjds.net/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /www/wwwroot/g.sjds.net/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /www/wwwroot/g.sjds.net/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /www/wwwroot/g.sjds.net/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /www/wwwroot/g.sjds.net/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /www/wwwroot/g.sjds.net/app/provider.php ( 0.19 KB )
  23. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /www/wwwroot/g.sjds.net/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /www/wwwroot/g.sjds.net/app/common.php ( 0.03 KB )
  27. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /www/wwwroot/g.sjds.net/config/app.php ( 0.95 KB )
  30. /www/wwwroot/g.sjds.net/config/cache.php ( 0.78 KB )
  31. /www/wwwroot/g.sjds.net/config/console.php ( 0.23 KB )
  32. /www/wwwroot/g.sjds.net/config/cookie.php ( 0.56 KB )
  33. /www/wwwroot/g.sjds.net/config/database.php ( 2.48 KB )
  34. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /www/wwwroot/g.sjds.net/config/filesystem.php ( 0.61 KB )
  36. /www/wwwroot/g.sjds.net/config/lang.php ( 0.91 KB )
  37. /www/wwwroot/g.sjds.net/config/log.php ( 1.35 KB )
  38. /www/wwwroot/g.sjds.net/config/middleware.php ( 0.19 KB )
  39. /www/wwwroot/g.sjds.net/config/route.php ( 1.89 KB )
  40. /www/wwwroot/g.sjds.net/config/session.php ( 0.57 KB )
  41. /www/wwwroot/g.sjds.net/config/trace.php ( 0.34 KB )
  42. /www/wwwroot/g.sjds.net/config/view.php ( 0.82 KB )
  43. /www/wwwroot/g.sjds.net/app/event.php ( 0.25 KB )
  44. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /www/wwwroot/g.sjds.net/app/service.php ( 0.13 KB )
  46. /www/wwwroot/g.sjds.net/app/AppService.php ( 0.26 KB )
  47. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /www/wwwroot/g.sjds.net/vendor/services.php ( 0.14 KB )
  53. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /www/wwwroot/g.sjds.net/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /www/wwwroot/g.sjds.net/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /www/wwwroot/g.sjds.net/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /www/wwwroot/g.sjds.net/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /www/wwwroot/g.sjds.net/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /www/wwwroot/g.sjds.net/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /www/wwwroot/g.sjds.net/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /www/wwwroot/g.sjds.net/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /www/wwwroot/g.sjds.net/app/Request.php ( 0.09 KB )
  84. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /www/wwwroot/g.sjds.net/app/middleware.php ( 0.25 KB )
  86. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /www/wwwroot/g.sjds.net/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /www/wwwroot/g.sjds.net/route/app.php ( 1.72 KB )
  100. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /www/wwwroot/g.sjds.net/app/controller/Index.php ( 4.81 KB )
  104. /www/wwwroot/g.sjds.net/app/BaseController.php ( 2.05 KB )
  105. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /www/wwwroot/g.sjds.net/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /www/wwwroot/g.sjds.net/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /www/wwwroot/g.sjds.net/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /www/wwwroot/g.sjds.net/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /www/wwwroot/g.sjds.net/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /www/wwwroot/g.sjds.net/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /www/wwwroot/g.sjds.net/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /www/wwwroot/g.sjds.net/runtime/temp/14f8d2b0da3af21306154cf73e80fb0c.php ( 8.12 KB )
  140. /www/wwwroot/g.sjds.net/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000569s ] mysql:host=172.18.0.4;port=3306;dbname=g_sjds;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000751s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000421s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000377s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000626s ]
  6. SELECT * FROM `set` [ RunTime:0.000299s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000816s ]
  8. SELECT * FROM `article` WHERE `id` = 459216 LIMIT 1 [ RunTime:0.000474s ]
  9. UPDATE `article` SET `lasttime` = 1790378093 WHERE `id` = 459216 [ RunTime:0.001698s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.000388s ]
  11. SELECT * FROM `article` WHERE `id` < 459216 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000450s ]
  12. SELECT * FROM `article` WHERE `id` > 459216 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000481s ]
  13. SELECT * FROM `article` WHERE `id` < 459216 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000773s ]
  14. SELECT * FROM `article` WHERE `id` < 459216 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000786s ]
  15. SELECT * FROM `article` WHERE `id` < 459216 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000930s ]
0.089042s