乐于分享
好东西不私藏

C4 Model:用地图思维重建软件架构的沟通语言

C4 Model:用地图思维重建软件架构的沟通语言

引言:我们画的架构图,别人真的能看懂吗?

如果你请一位建筑师描述一栋建筑的结构,他会拿出平面图、立面图、剖面图——每一张图都有明确的用途、标准的符号、清晰的受众。但如果你请一位软件工程师画出系统的架构,你大概率会得到一堆含义不明的方框和线条。

这不是个别现象。Simon Brown(C4 Model 的作者)在多年的咨询和培训中观察到,软件行业的架构图普遍存在以下问题:

  • 符号没有图例说明,颜色和形状的含义全靠猜
  • 元素的职责模糊,充斥着"业务逻辑"这类万能标签
  • 关系线没有标注方向和含义,甚至缺失
  • 不同层次的抽象混在一张图里,既有数据库表又有整个系统
  • 多张图之间的符号、命名、阅读顺序互不一致

行业里并非没有建模语言——UML、ArchiMate、SysML 都是成熟的体系。但现实是,大量团队已经抛弃了这些语言,转向了更简单的"框图"画法。问题在于,抛弃复杂建模语言的同时,团队也丢掉了用图形有效沟通架构的能力。

C4 Model 就是在这个背景下诞生的。它不是另一套复杂的建模语言,而是一种帮助团队重新建立架构沟通能力的方法——用最简单的方式,画出别人真正能看懂的架构图。

核心隐喻:代码的地图

C4 Model 的核心思想可以用一个类比概括:像使用地图一样描述你的代码。

想想你在 Google Maps 上查看一个地点的方式。最高层级你看到的是整个城市的轮廓和它与周边城市的关系;放大一级,你看到城区内的主要道路和区域划分;再放大,你看到具体的街道和建筑;最终你可以放大到一栋建筑的门牌号。每一层都有不同的细节量,服务于不同的目的。你不会在城市总览图上标注每一栋建筑,也不会在街道图上显示整个国家的轮廓。

C4 Model 对软件架构做了同样的事情。它定义了四个从粗到细的抽象层次,每一层都是对上一层某个元素的"放大"——逐层深入细节,每一层回答不同的问题,面向不同的受众。

四层抽象

C4 中的"C4"就是这四个层次的首字母:Context、Containers、Components、Code。

第一层:System Context(系统上下文)

回答的问题: 这个系统是什么?谁在用它?它和外部世界如何交互?

这是最高层级的视图。图中的核心是你正在构建的软件系统,围绕它的是使用者(人)和它依赖或被依赖的外部系统。这张图故意隐藏了所有内部技术细节——它面向的受众包括非技术人员,目的是让所有人对系统的边界和外部关系建立共识。

第二层:Container(容器)

回答的问题: 这个系统内部由哪些主要的可运行/可部署单元组成?它们之间如何通信?

这里的"Container"不是 Docker 容器。在 C4 的术语中,Container 指的是独立运行的应用程序或数据存储——例如一个 Web 应用、一个 REST API 服务、一个数据库、一个消息队列、一个文件系统。Container 图展示的是系统内部的高层技术架构:有哪些运行单元,各自的技术选型是什么,彼此之间用什么协议通信。

这是 C4 Model 中最重要的一层,也是 Simon Brown 最推荐团队优先绘制的图。它的受众是有技术背景的人——开发者、架构师、运维人员。

第三层:Component(组件)

回答的问题: 一个 Container 内部由哪些主要的功能模块组成?

Component 图将一个 Container 的内部打开,展示其中的关键组件以及它们之间的关系。这里的"组件"通常对应代码中的一组相关类或模块——比如一个 Controller 层、一个 Service 层、一个 Repository 层,或者按业务领域划分的模块。

这张图的受众主要是直接参与该 Container 开发的工程师。Simon Brown 建议,不是所有 Container 都需要画 Component 图——只在有沟通价值时才画。

第四层:Code(代码)

回答的问题: 一个 Component 内部的代码结构是什么?

这一层通常就是传统的 UML 类图或实体关系图。C4 Model 的建议是:在绝大多数情况下,你不需要手动画这一层——现代 IDE 和工具可以自动生成,而且代码本身就是最精确的文档。

值得注意的是,C4 官方明确指出:不需要使用全部四层,只用对团队有价值的层级即可。 对大多数团队来说,System Context 和 Container 两层就已经足够了。

Notation:不绑定符号,但约束信息完整性

C4 Model 的一个重要设计决策是符号无关(notation independent)。它不强制你使用特定的形状、颜色或线型——你可以用方框、圆角矩形、甚至手绘草图,都没有问题。这与 UML 形成了鲜明对比:UML 定义了一整套严格的图形符号体系(棒人代表 Actor、圆柱体代表数据库等),学习和使用的门槛都很高。

但"符号无关"不意味着"随便画"。C4 对图的信息完整性有一组明确的约束:

对图本身: 每张图必须有标题(说明图的类型和范围),必须有图例(Key/Legend)解释所有用到的符号约定——形状、颜色、线型各代表什么。即使你使用 UML 或 ArchiMate 的符号来画 C4 图,也应该加上图例,因为不是每个读者都熟悉这些符号体系。

对元素: 每个元素必须标注类型(Person、Software System、Container 或 Component),必须有简短的职责描述,Container 和 Component 还必须标注技术选型。

对关系: 每条连接线必须是单向的,必须标注关系的含义(而且要具体,不能只写一个"Uses"),容器之间的通信还必须标注技术协议。

这套约束的设计哲学很清晰:C4 不关心你用什么形状画图,它关心的是你有没有把关键信息写上去。一张没有图例、没有元素描述、箭头不标注含义的架构图,无论形状画得多漂亮,都是失败的沟通。C4 的 notation 规范本质上是一个信息完整性的检查清单,而不是一本符号字典。

补充图类型

除了核心四层的静态结构图,C4 还提供了几种补充图类型以覆盖更多的架构沟通场景:

Dynamic Diagram(动态图): 用于描述元素之间在运行时的交互顺序,类似 UML 的序列图,但使用 C4 的元素和 notation 原则。它可以在任意一个 C4 层级上绘制——你可以画系统间的交互时序,也可以画组件间的调用流程。

Deployment Diagram(部署图): 用于描述 Container 在不同环境(生产、预发、开发)中的实际部署拓扑——部署在哪些节点上、如何组织。

这两种图是对核心四层的实用补充,分别覆盖了运行时行为和物理部署这两个维度。

层次的扩展性:四层之上与四层之间

System Landscape:往上看全局

C4 的核心四层聚焦于单个软件系统的描述。但在真实的企业环境中,系统不会孤立存在。当你需要展示一个组织或部门内所有系统的全景时,C4 提供了 System Landscape 图。它本质上就是一张不聚焦于特定系统的 System Context 图——把视角从"一个系统与它的外部关系"拉远到"所有系统之间的关系"。对于大型组织来说,Landscape 图是连接 C4 与企业架构视角的桥梁。

更多层次:允许但谨慎

一个自然的问题是:四层够用吗?如果系统足够复杂,能否在 Container 和 Component 之间再插入一层?

Simon Brown 对此的态度是明确的:可以,但这是一个高级操作(advanced manoeuvre),需要谨慎对待。

他观察到,大多数团队想要增加层次的原因其实是以下两种情况之一:

第一,对现有层次的定义理解有误,导致误用。例如把"数据库"这个词不加区分地使用——它可能指一个数据库服务器(Container),也可能指一个 schema(也是 Container),也可能指一组相关的数据表(Component 级别)。很多"四层不够用"的困惑,根源在于术语的不精确。

第二,想把组织概念(子系统、限界上下文、分层、库)映射为 C4 的抽象层,但这些概念本身并不是独立的抽象层级,更多是逻辑分组或设计模式。

C4 Model 的核心力量恰恰在于它的小而固定的层次体系——正是因为只有四层,团队才被迫精确思考每个元素属于哪一层,这个过程本身就在推动术语的统一和架构认知的对齐。如果随意增加层次,这个约束力就会被稀释,最终退化为又一套含义模糊的框图。

所以 Simon Brown 的建议是:如果你确实需要增加层次,你必须投入精力去精确定义新层次的含义——它代表什么抽象、与相邻层的边界在哪里、判定标准是什么。如果做不到这一点,就不应该加。

总结

C4 Model 的核心贡献不在于发明了新的图形符号,而在于为软件架构的可视化沟通提供了一个简单、分层、可落地的框架:

  • 四层逐级放大机制让不同受众在不同粒度上理解同一个系统
  • Notation 原则不限制表达形式,但要求信息完整
  • 层次体系简单但有约束力,迫使团队精确使用术语

C4 不试图替代 UML 或 ArchiMate,也不试图覆盖架构的所有维度。它的定位很明确:帮助团队画出别人能看懂的架构图。

本文的内容提炼自 C4 Model 官方网站(c4model.com)上 Simon Brown 的原始阐述,经过笔者的理解和重新组织。理解难免有偏差之处,强烈建议感兴趣的读者访问 c4model.com 阅读原文。如果你有不同的理解或看法,欢迎在评论区留言交流。

在本系列的下一篇文章中,我们将跳出 C4 Model 的官方定义,分享一些基于实践的延伸思考:C4 的四层抽象与经典 4+1 视图模型之间是什么关系?当我们沿着层次逐级放大时,除了元素本身被细化,图中的其他信息——关系、行为、部署——是否也应该随之展开?在大规模系统中,如果四层不够用,中间层该如何定义?这些问题没有标准答案,但值得每一个使用 C4 的团队认真思考。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-06-22 01:31:27 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/631909.html
  2. 运行时间 : 0.140272s [ 吞吐率:7.13req/s ] 内存消耗:4,663.45kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=c9670ff505eb2b9881a1b9c62e6315d0
  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.000895s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001267s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000557s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000464s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000883s ]
  6. SELECT * FROM `set` [ RunTime:0.000402s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001015s ]
  8. SELECT * FROM `article` WHERE `id` = 631909 LIMIT 1 [ RunTime:0.001123s ]
  9. UPDATE `article` SET `lasttime` = 1782063087 WHERE `id` = 631909 [ RunTime:0.003317s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000548s ]
  11. SELECT * FROM `article` WHERE `id` < 631909 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000849s ]
  12. SELECT * FROM `article` WHERE `id` > 631909 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.002518s ]
  13. SELECT * FROM `article` WHERE `id` < 631909 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.005615s ]
  14. SELECT * FROM `article` WHERE `id` < 631909 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.014918s ]
  15. SELECT * FROM `article` WHERE `id` < 631909 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.003572s ]
0.143042s