跳到内容
当前位置:首页>小程序源码>一个不懂代码的人,把微信小程序做上线了.这三天踩的坑我都写下来了

一个不懂代码的人,把微信小程序做上线了.这三天踩的坑我都写下来了

  • 2026-10-26 20:10:21
一个不懂代码的人,把微信小程序做上线了.这三天踩的坑我都写下来了

它上线了。

晚上七点半,我在微信公众平台点下了「提交审核」,第二天中午,审核通过。

点完之后,我盯着屏幕愣了几秒。

三天前,我连「云函数」是个什么玩意都不知道。

我不是程序员,平时干的活儿跟写代码八竿子打不着。代码这件事,跟我日常的工作大概隔着十万八千里。

但就是用三个晚上,我用AI把一个微信小程序从零做到了上线。它叫「法考复习指南」,是给法考生用的免费工具,里面有 6936 条法条和司法解释,1424 条常考考点索引。

写这篇文章,不是想说这事有多厉害。是因为我这一路踩的坑,绝大多数做小程序的人都会踩,而且踩完之后你去网上搜,大概率搜不到答案。

更折磨人的是,我遇到的每一个问题,都不是「报错了怎么办」这种一搜就有的事。是那种报错信息里全是我看不懂的词,而教程里的界面跟我电脑上长得完全不一样。

先说这个产品是怎么来的。

坦率的讲,我最初想做的是一个法考刷题工具,这个方向很快就被否了,理由非常硬。

第一,个人主体申请不了教育类目。要挂教育,要么是企业主体,要么得有办学资质加 ICP 备案。我手上只有一张身份证。

第二,微信平台明确禁止展示国家教育考试的真题和参考答案。

第三,这一条最要命。法考官方不公布真题和答案。也就是说,就算我想做,真题这个数据源本身根本不存在。市面上流传的那些法考真题,来源五花八门,没有一个官方的版本。

三条叠在一起,教育这条路,以我的身份走不通。

后来我换了个想法。

法考主观题是 240 分钟,几道大题,全程用考场电脑上统一的电子法条库,不许自带任何汇编。所以考场上真正稀缺的能力,不是在脑子里背,是在几千条法条里飞快地找到那一条。

而市面上的法考产品,大多在做背和刷题,练定位速度的很少。

这就是我的机会。而且这个方向刚好避开了前面那几道门槛。《著作权法》第五条规定,法律、法规、司法解释的原文不受著作权保护。我不做题目,不做解析,只是把公开的法条整理好,让你能飞快找到它。

做这个项目的过程中,我对合规的看法变了。很多人觉得合规是束缚。我现在觉得,合规其实是一把筛子。它帮你筛掉那些你根本做不了的方向,剩下的才是你的地盘。要是我一开始死磕刷题,三天时间大概率全花在找资质上,最后发现根本过不了审。

方向定了。但这三天里,产品形态被我推翻了三次,每一次都不是我自己想明白的。

第一次推翻,是从「计时找条号」改成卡牌。

我一开始的设想是,用户计时,快速找到某个条号,练反应速度。后来有人跟我说,纯背法条序号没有意义。记住「第 172 条是表见代理」,换个问法还是不会用,而且条号会随法律修订变化。

这话是对的。我把它改成了卡牌。正面写一个考点情境,翻过去是条文原文。练的是条文内容,考场上能直接援引。

改完我发现还捡了个便宜。这个改法顺手把合规问题也解决了。正面只写情境导航,背面是官方条文原文,两头都不越教育类目的界。

第二次推翻,是「加注册」。

有人提意见说需要一个注册页面。但小程序没有注册这个概念,用户打开就用,身份由微信自动识别。真要做,就是手机号加短信验证码,还要弹隐私协议,审核反而更麻烦。

我最后做的是「个人设置」,只让用户选考试年份和关注科目,不碰手机号。不做注册还有一个更实在的理由。真正会丢数据的场景只有一个,就是换微信号。而换微信号的人,注册也救不了他,他得重新注册再手动同步一遍。所以我去做的是备份导出,把进度生成一段文本,用户自己存着,换设备粘贴回来。比强制注册轻得多。

第三次推翻,是搜索。

原本我只做了按条号搜。有人说,搜一个知识点就该能搜到相关法条。这个提醒点到了要害。用户脑子里的检索入口是知识点,不是条号。所以我又做了一个按考点搜的通道,输入「相对人信赖」这种词,直接给出相关条文和原文。

三次推翻,没有一次是我自己想出来的,都是别人用一句话点醒我。这件事让我明白,做产品最难的不是把它做出来,是知道该做什么。

方向定完,第一个大麻烦是数据。

我手上最初只有 23 条试数据。

23 条。而法考涉及的法条是万级的量。这个差距有多离谱呢,我试着搜「善意取得」,0 条。搜「表见代理」,0 条。搜「不当得利」,0 条。

我一度以为搜索功能写坏了。查了半天代码,才发现代码没问题,是库里压根没这些条文。

从 23 条扩到 6936 条,中间隔着一段特别折腾的路。

我最先想到的是国家法律法规数据库,那是官方的权威来源。但它只提供逐条浏览,没有批量导出的入口,几千条条文一条条点,不现实。

我也没想过绕过它的限制。网站怎么设计是人家的自由,硬绕既不体面,也不稳,人家改一次版,你就全废了。

转机在公开的法律文本。我实测发现,不少权威机构官网公布的法律全文,页面就开放着,看得见,也存得下。就这样,我先把 26 部司法解释整理了下来。

法律正文是另一条路。国家数据库不给批量,但很多机构官网都会全文公开法律法规。民法典 1260 条一条不少,刑法的条文正文,都是这样从公开发布的页面上整理下来的。

这块的坑,是全项目最密集的。

先是编码。有一个页面是 GB2312 编码,我按 UTF-8 去解,解出来一片乱码,程序识别出的条号是 0 个。我当时以为是页面里没内容,差点放弃这个来源。后来改成按页面自己声明的编码去解,才对上。

接着是一个我完全没想到的东西。有的页面用   和   两个 HTML 实体做条号和正文之间的间隔。不解码它,条号和正文就粘成一行,程序匹配「第 X 条」永远匹配不到。症状跟编码问题一模一样,都是条号 0 个,特别容易误判。

还有章节标题污染。转载页面里最后一条法条后面直接跟着下一章的标题,独占一行。民法典 1260 条里,有 109 条的正文尾部被粘上了章节标题。后果就是搜「自然人」会命中监护那一章,牛头不对马嘴。

修这个污染的时候我又误伤了。一开始我简单粗暴地按「本编第 X 章」的特征去删,结果把 14 条正常的法律条文切坏了。比如第 424 条写的是「最高额抵押权除适用本节规定外,适用本章第一节的有关规定」,这是正文里正当的法律引用,被我当成章节标题删了。

最后定的判据是,章节标题独占一行而且整句没有标点,正文引用一定带标点。这样才既把污染清到 0 条,又没伤到任何一条正文。

刑事诉讼法走的是第三条路,PDF。我一开始找到的版本只有后半截,最后找到的是一份公开发布的完整 PDF,71 页。转成文本后提出 308 条,从第一条到最后一条完整。

PDF 提文本也有坑。我过滤页眉用的规则是「行很短且含中华人民共和国」,结果误删了第 2 条和第 18 条。为什么?因为这两条正文里正好提到「中华人民共和国刑事诉讼法的任务」。

误删法条这种事,性质比排版错乱严重得多。我改成「同一行重复出现三次以上才算页眉」,308 条才全保住。

数据整理完,还有一个我完全没预料到的问题。

我往库里灌了真数据,然后搜「表见代理」。

0 条。

我查原始数据。《民法典》第 172 条白纸黑字就是表见代理的规则,但它通篇没有「表见代理」这四个字。原文的写法是「有理由相信行为人有代理权」。

我这才反应过来。表见代理是教材术语,不是法定表述。法考的书上都这么叫,可法律原文里从来不这么写。

这样就有一个问题。如果我只做法条原文的搜索,用户脑子里想的那个词,跟条文里写的那个词,根本对不上。

我加了一层术语映射,大概 60 组,把教材里的说法转成条文的法定表述。搜表见代理,实际去搜「有理由相信行为人有代理权」。实测下来能出 8 条,善意取得 20 条,正当防卫、不当得利、无因管理这些都能搜到了。

这层映射我只写「这个说法等于那个法定表述」,绝不写「这个知识点怎么考」。这是产品定位的底线,写多了它就不是检索工具,变成教辅了,类目那一关立刻过不去。

到这里,6936 条法条齐了。后面就是上线。也是我踩坑踩得最惨的一段。

第一个坑,简单到我想抽自己一巴掌。

我在本地把代码调通了,高高兴兴上传了体验版,用手机一搜,还是那 23 条。

排查了半天。原因是我代码里有个开关叫 useMock,意思是「用假数据」。我本地调试的时候一直开着它,忘了关。

结果就是,本地跑得好好的,线上跑的是假数据。你在模拟器里看到的一切正常,全是幻觉。

这个坑说到底是,本地能跑跟线上能跑是两件完全不同的事。我把代码上传了,但上传的是带着调试开关的代码。

第二个坑,是云函数部署。

云函数这个概念,我一开始完全不懂。后来才明白,它是跑在微信服务器上的一段代码,你的小程序要查数据库,得通过它去查。

我在开发者工具里怎么都找不到部署的入口。截图发过去问,才发现自己停在「调试器」面板里,文件的目录树根本没显示出来。恢复布局之后,又卡在「未选择环境」几个字上。云函数的文件夹后面跟着灰色的「未选择环境」,右键菜单里没有「上传并部署」这一项。

这个「选择环境」的操作,官方文档里藏得特别深。正确做法是右键那个文件夹,菜单第一项叫「当前环境」,右边有个小三角,点开选你已经创建的环境。

我在这上面来回折腾了快一个小时。中间还有个小插曲,我跑到云开发控制台点了「新建云函数」,建了个空壳出来,以为自己把代码传上去了。真相是,控制台建出来的只是官方示例的空模板,我的代码和数据一个字都进不去。

第三个坑,是我自己写错的。

我一开始跟人讲,把云函数的超时改成 120 秒。后来我去查证,微信云函数默认超时是 3 秒,上限是 60 秒,根本没有 120 秒这种东西。

我一开始写的就是错的。我照着想当然的数字写了一版说明,还改了配置文件。这个必须承认,我确实搞错了。

第四个坑最要命。一次导入 8360 条。

数据备好了,云函数也部署了,我点下导入按钮。等了几秒,屏幕上冒出一行看不懂的英文。

scf/Invoke 请求失败 system error

???

我完全不知道这是什么意思。查了半天才搞明白,云函数默认超时只有 3 秒,而我要往里写 8360 条数据,3 秒肯定写不完,被系统掐断了。

而且当时我犯了个错,一次把全部数据都丢进去。6936 条法条加 1424 条考点,一起写。

解法是把导入切成小片。每次写 600 条,一批一批来。6936 条切成 12 批,1424 条切成 3 批。每一批几秒钟就跑完,再也不会撞超时。

改完再跑,屏幕上的数字开始一段一段往上跳。已写 600 条,已写 1200 条,已写 1800 条……

最后停下来的时候,上面写着两行字。

laws 6936/6936 条已写入

points 1424/1424 条已写入

那一刻我是真的有点激动。三天前我连云函数是什么都不知道,现在我看着自己的程序把 6936 条法条一条不少地搬进了数据库。

中间还有件小事想说说。为了找到写数据的办法,我试过用云端密钥直接连数据库。结果一直报错,说我这个环境不存在。查了半天才发现,我手上那串密钥属于另一个账号,根本访问不到我这个小程序的环境。

最后反而是最简单的办法成了。我把数据文件直接打包进云函数,让云函数用它的身份去写。不需要密钥,不需要我登录,云函数跑起来的时候自己就带着权限。

这事给我的感觉挺奇妙。我花在绕路上的时间,比花在正路上的还多,而最后解决它的方案,简单到有点好笑。

功能做完之后,还有几件事让我印象很深。

有一件是人家报给我的问题。我在手机上搜「134」,跳出来的列表居然从第 121 条开始,134 条排在这一屏的第 14 行。

我一开始以为是搜索写错了。查完才发现,是我「跳到第 N 条」这个功能的设计本身有毛病。

我原来的做法,是用条号去猜页码。第 134 条嘛,一页 20 条,那就是第 7 页。算式是条号减一再除以每页条数,再加一。

问题是,这个第 7 页里装的,是按排名排出来的第 121 到 140 条。

我这才明白过来。页面是按排名切分的,而用户要找的是条号,这两个东西只要对不齐,算出来的页码就一定是错的。而刑法里有 53 处「之一」「之二」这种附加条号,条号和排名差得更多,页码还会整体往后漂。

后来我改了做法。不再猜页码,直接把条号当成查询的起点。要第 134 条,就让它从第 134 条开始往后取,第一条必然是 134。

这个事让我琢磨了很久。因为我猜页码的思路,一开始看起来是完全合理的。只要条号连续,它就能算对。可现实里条号就是不连续的。一种看起来对、实际必错的方案,比一个明摆着的错误危险得多。

还有一件事更有意思。

我给小程序做了个自检页,一进去就自动检查各种功能是否正常。有一次它报了三个红点。

三个红点,对应三个核心功能。我挨个查。

第一和第二个是真 bug。其中一个特别隐蔽,我用了一行看起来完全正常的代码去拼查询条件,结果云数据库的查询指令被摊平成一个普通对象,语义直接丢了。这行代码不报错,它只会安静地返回空结果。你不去核对数据,永远发现不了。

第三个红点,查到最后发现是我的自检程序自己搞错了。

它拿去测试的那个词,是我从脑子里随便想的一个,叫「相对人信赖」。我把 1424 条考点数据翻了个遍,这个词在这里面一条都没有。

也就是说,那个红点不是功能坏了,是我的测试用例用了数据里根本不存在的词。程序老老实实告诉我搜不到,我就以为功能坏了。

这事让我记住一个教训。做自动化检查的时候,测试用例里的数据必须从真实数据里捞出来,不能凭想象写。凭想象写出来的用例,检出的不是 bug,是自己的幻觉。

最后是审核这一关。这是所有做小程序的人都要过的一道门,我觉得这部分对大家最有用。

先说类目。我的小程序选的是「工具 - 实用工具」。千万别选跟教育、法律咨询沾边的类目,个人主体开不了,要资质要备案,一申请就被打回来。

然后是隐私。微信有一个《用户隐私保护指引》,要在后台填,不填审核直接拒。我一开始完全不知道有这东西。

填之前我做了一件事。我把整个小程序的代码从头到尾扫了一遍,确认它到底有没有采集用户信息。

结论是没有。没要手机号,没要位置,没碰相册、摄像头、麦克风、通讯录,没拉微信昵称和头像,也没在后台悄悄往外发数据。整个小程序连一次对外的网络请求都没有。

有一个东西是绕不开的,叫 OpenID。这是微信自动给每个用户分配的编号,用户自己看不到,也不需要授权,我用它来区分这是谁的数据。它里面没有姓名也没有手机号,不算个人信息,但没有它,你的数据就没法隔离。

我唯一需要在后台声明的接口是剪贴板。因为复制条号、复制条文这些功能要用到。微信要求这类接口必须在隐私指引里勾选,用途写清楚。这一项不勾,审核会被驳回。

还有个细节。我做了「清空我的数据」这个按钮,因为用户有权删除自己的数据。结果自查的时候发现,我删得不干净,有一个集合漏掉了。用户行使自己的删除权,结果数据没删完,这在审核里是个风险点。后来改成循环删到空。

这一段我特别想说一句。很多人做小程序的顺序,是做完了再回头补合规。这个顺序是错的。合规应该在你写第一行代码之前就搞清楚,因为它会直接改变你的产品形态。我这个项目,光是「不碰真题、考点只写导航不写讲解」这一条线,就决定了整个产品长什么样。

还有一件事,是我自己吓自己。

我写了一份免责声明,八节。因为法条是我一条条从公开渠道整理出来的,我怕出错惹麻烦。写完我还挺得意,觉得考虑得很周全。

后来做隐私核查的时候我往回翻,发现里面有一句话是错的。我写的是「练习记录和复习队列保存在你的本地缓存中,不会上传」。实际上它们是存在云端的。

这句话是我自己写的。我写的时候以为它就是本地存的。

一份说错话的免责声明,比没有免责声明更危险。不写是没承诺,写错了是虚假陈述。我把它整段重写了,如实说清楚什么是本地的,什么是云端的,怎么删。

写免责声明的时候还有个思路我觉得挺有用。因为我强调这个小程序完全免费、无偿使用,那我在声明里就把免费和不担保绑在一起说。免费提供跟不承担担保责任,在道理上是对等的。同时我不承诺内容绝对准确,只承诺来源是官方公开渠道,并且写明如果发现错误欢迎反馈。

有免责,也有纠错通道,比单纯甩锅可信得多。这是写这一段的时候我最想清楚的一件事。

如果看到这里的你,也想自己做一个小程序,我想留几条我踩出来的经验。

1、先把合规搞清楚,再动手。类目选什么、能不能采集信息、要不要资质,这决定了你的产品是做得了还是做不了。这部分花的每一分钟都不会白费。

2、数据只认官方来源。法律、司法解释的原文是公开的,谁都可以查、可以用,我把它们从官方和权威渠道公开发布的地方整理下来。至于第三方的题库、数据库、机构整理的东西,一个字都不碰。来源说不清楚的东西,留着就是个雷,早晚要炸。

3、本地能跑跟线上能跑是两件事。上线之前,把所有调试用的开关挨个检查一遍。

4、找不着北的时候,截图,然后把截图给别人看。我这次遇到的几乎所有问题,都不是靠搜关键词解决的,而是靠把我看到的画面描述出来。因为小程序的开发工具不同版本界面差别很大,网上的教程跟我电脑上长得完全不一样。

5、遇到报错,先别急着改代码。我吃的最大的几个亏,都是因为报错信息在说 A 问题,我却在改 B。比如那个 system error,它说的是超时,我却先去怀疑数据格式。

说了这么多踩坑,也说说它现在到底能干什么。

打开之后底下是四个入口,首页、卡牌、搜知识点、我的。核心是两张牌。

第一张叫卡牌。正面是一句考点情境,比如「有理由相信对方有代理权,这份合同算不算数」,你心里先答一遍,翻过去就是《民法典》第 172 条的原文。答得出就过,答不出点「没记住」,它会自动进复习队列,下次专门等你。为什么不做成背条号,因为记住「第 172 条是表见代理」,换个问法你还是不会用,条号本身也会随法律修订变化。背条文本身,考场上才能直接援引。

第二张叫定位训练。它不给你答案,只给你一个情境,让你自己去找条文,找到再把条号输进去。系统当场结算你找得对不对、用了几秒。练的就是考场上最要命的那件事,240 分钟,几道大题,几万条法条,你找得完吗。

搜索有两个入口,分工很清楚。搜知识点是给想不起条文的人用的,脑子里只剩「表见代理」四个字,输进去,直接给条文原文。搜法条是给知道条号的人用的,输 172、民法 172、民法典 172 都认,要第几条就是第几条,不会从第 121 条开始。

还有一个法条目录。全量库现在是 29 部法律加 32 部司法解释,6936 条。不知道有哪些、该从哪找,就先翻目录,两栏切换,带名称筛选和条数。

剩下的都是些小东西。常用法条是按学科分好的精选集,1424 条,都是常考高频的条文。我的收藏是看哪条点哪条,星标存着。复习队列收着你答错和超时的。迁移对照表是给同时考 CPA、税务师的人看的,它会告诉你哪些不用从零学。备份恢复把进度生成一段文本,换手机粘回来就行。还有每天打卡的连续天数,督促你别断。

全部免费,没有课程,没有题库,也不含任何真题。我做的只是把公开的法条整理好,让你找得到。

最后我想说一点关于 AI 的。

这三天里,我大概有一半的时间在跟 AI 说「这是什么意思」。我说得最多的几句话是,报错了,下一步怎么做,我看不懂这行,还有你确定吗。

我发现一件挺反常识的事。AI 并没有让「不会写代码」这件事彻底消失,它只是把卡住你的地方换了个位置。

以前一个人做产品,卡在写不出代码。现在代码这部分确实有人替你写了,但你会卡在别的地方。卡在你不知道该问什么问题,卡在你分辨不出 AI 说得对不对,卡在你不知道一个功能做出来了该怎么验收。

我这三天里最耗时间的,从来不是等它写代码,是判断。判断这个功能该不该做,这个数据能不能用,这句话能不能写进免责声明。

而判断这件事,恰好是你自己的常识在起作用。我不是程序员,但我知道法条原文和教材表述是两回事,我知道一个人免费做的东西不能承诺绝对准确,我知道跟教育、医疗、法律沾边的类目一定有资质门槛。这些判断,AI 帮不了我。

所以我现在的感觉是,AI 把你从「不会写代码」里解放出来,然后把你送到真正属于你的地方去。那个地方可能是一个只有你能想到的产品方向,也可能是一个只有你会遇到的判断。

历史上,做工具的要么是公司,要么是懂技术的人。现在这个门槛降到了「有判断力的人」这一层。我觉得这是件挺大的事。

这个小程序已经上线了。它会不会被人喜欢,我不知道。

但三天前,我连云函数是个什么玩意都不知道。

如果你也有一个想了很久、又总觉得「我肯定不会做」的小东西,我建议你,今天就动手试试。

先别想着做完,先把它做出第一版。

对了,还有件事得提前交个底。微信云开发的免费环境,是跟着上线时间算的,小程序发布之后第 15 天到期。我 13 号上线,算下来就是这个月底。

也就是说,这个月底之前它是白用的。月底之后,我不打算续费。

这玩意对我来说,从头到尾就是一次开发尝试。我想验证的就一件事,一个不懂代码的人,靠 AI 能不能把一个小程序从零做到上线。现在这个问题有答案了,能。验证完的东西,我没必要一直养着它。

所以想试的话,趁早。月底之后它大概率就打不开了。

不是跑路,是我本来就没打算让它一直开着。

想用的,长按识别下面这张小程序码,或者在微信里搜「法考复习指南」。免费的,月底之前都能用。


以上,如果你也在折腾小程序,或者踩过我上面说的某个坑,欢迎在评论区聊聊。

📢 一则小广告

你不是不自律,你只是缺一个不得不学的环境

我建了一个初级、中级、税务师、注会陪跑群。不是培训班,不是直播课——那些你买够了。

群里只做四件事——每日打卡互相监督、难题互助随问随答、考前焦虑共担、一次45分钟语音咨询。

199元管一年。留下的都是真想考过的人。

私信公众号,备注考试名称,赞赏或者转账199,拉你进群。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-10-27 22:15:16 HTTP/1.1 GET : http://g.sjds.net/a/459594.html
  2. 运行时间 : 0.070514s [ 吞吐率:14.18req/s ] 内存消耗:4,333.64kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=ebe5b868bbf88d9031e0fc88ea268db8
  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.000514s ] mysql:host=172.18.0.4;port=3306;dbname=g_sjds;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000699s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000351s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000338s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000566s ]
  6. SELECT * FROM `set` [ RunTime:0.000299s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000671s ]
  8. SELECT * FROM `article` WHERE `id` = 459594 LIMIT 1 [ RunTime:0.000459s ]
  9. UPDATE `article` SET `lasttime` = 1793110516 WHERE `id` = 459594 [ RunTime:0.001892s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000322s ]
  11. SELECT * FROM `article` WHERE `id` < 459594 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000454s ]
  12. SELECT * FROM `article` WHERE `id` > 459594 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000408s ]
  13. SELECT * FROM `article` WHERE `id` < 459594 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000540s ]
  14. SELECT * FROM `article` WHERE `id` < 459594 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000557s ]
  15. SELECT * FROM `article` WHERE `id` < 459594 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000557s ]
0.081625s