当前位置:首页>python>ArcGIS Pro C#和Python二次开发的区别

ArcGIS Pro C#和Python二次开发的区别

  • 2026-06-30 18:57:03
ArcGIS Pro C#和Python二次开发的区别

ArcGIS Pro 二次开发深度解析

C# 开发 vs Python 开发

技术选型 · 优缺点剖析 · 实战场景决策

GIS 技术系列文档|2026 年 6 月 

目录

一、引言:二次开发的两条路线2

二、核心技术概述2

2.1 ArcGIS Pro C# 开发(ArcGIS Pro SDK)2

2.2 ArcGIS Pro Python 开发(arcpy)2

三、全维度对比分析(16 个维度)3

四、C# 开发深度解析4

4.1 C# 开发的核心优势4

4.2 C# 最佳使用场景4

4.3 C# 开发的局限与挑战5

五、Python 开发深度解析5

5.1 Python 开发的核心优势5

5.2 Python 最佳使用场景6

5.3 Python 开发的局限与边界7

六、底层差异:为什么是这样的格局7

七、决策框架:如何选择开发语言8

7.1 任务场景决策矩阵8

7.2 项目维度快速决策树9

八、协同模式:C# 与 Python 的联合作战9

九、宁夏林业 GIS 项目实战建议10

十、结语与学习路径建议11 

一、引言:二次开发的两条路线

ArcGIS Pro 提供了两套完整的二次开发体系:以 ArcGIS Pro SDK(C#)为代表的「桌面端深度定制」路线,以及以 arcpy 为核心的「数据处理自动化」路线。这两条路线并不是同一件事的两种做法,而是面向不同层次需求的独立解决方案。 

许多 GIS 从业者的困惑在于:我想做一个 ArcGIS Pro 的自定义功能,用 C# 还是 Python?这个问题的答案取决于你要做的是「什么功能」——而不是你更熟悉哪门语言。 

核心判断:Python(arcpy)主要用于「数据处理与地理分析自动化」;C#(ArcGIS Pro SDK)主要用于「ArcGIS Pro 应用程序界面与交互的深度定制」。二者的边界清晰,最优状态是按需协同。 

二、核心技术概述

2.1 ArcGIS Pro C# 开发(ArcGIS Pro SDK)

ArcGIS Pro SDK for .NET 是 Esri 官方发布的桌面 GIS 应用程序开发套件,基于 Microsoft .NET Framework / .NET 6+,使用 C# 语言,通过 Visual Studio 进行开发。它采用异步编程模型(async/await),并遵循 MVVM(Model-View-ViewModel)设计模式。

核心能力:

自定义 ArcGIS Pro 界面(Ribbon 按钮、菜单、停靠面板、地图窗口扩展)

与 ArcGIS Pro 地图画布进行深度交互(鼠标操作、要素选择、编辑会话)

构建企业级 .addin 插件(Add-in),可部署和分发

调用完整的 ArcGIS Pro SDK Geometry API 进行高性能几何运算

集成 Windows 企业应用系统(Active Directory、数据库、Web 服务)

2.2 ArcGIS Pro Python 开发(arcpy)

arcpy 是 Esri 随 ArcGIS Pro 发布的官方 Python 站点包,提供对几乎所有地理处理工具的程序化调用,并深度集成 Python 的数据科学生态(pandas、numpy、matplotlib 等)。

核心能力:

调用 600+ 地理处理工具(Geoprocessing Tools)进行空间分析

通过 Cursor 类(SearchCursor / UpdateCursor / InsertCursor)逐要素读写数据

批量自动化处理大规模 GIS 数据集

集成 pandas / numpy / scikit-learn 等数据科学库

开发 Python 脚本工具,嵌入工具箱(.atbx)供他人使用

在 ArcGIS Pro Notebook 中进行交互式空间数据分析 

三、全维度对比分析(16 个维度)

下表从技术、工程和工作场景三个层次,系统比较 C# 与 Python 在 ArcGIS Pro 开发中的差异:

对比维度

C#(ArcGIS Pro SDK)

Python(arcpy)

开发工具

Visual Studio(完整 IDE)

VS Code / PyCharm / Notebook

学习门槛

高(C# + .NET + MVVM + SDK)

中低(Python + arcpy API)

运行方式

编译型(需构建 .addin 包)

解释型(直接运行脚本)

界面开发

完整支持(Ribbon/Panel/窗口)

不支持(无 UI 定制能力)

地图交互

完整支持(鼠标/选择/编辑)

仅支持数据操作,不支持交互

数据处理能力

中(通过 SDK API 间接调用)

强(直接调用全部 GP 工具)

批量自动化

可实现但较复杂

天然适合,for 循环即可

第三方库集成

丰富(NuGet:EF、NPOI 等)

极丰富(pip:pandas/ml/api 等)

性能

极高(编译型,内存操作高效)

良好(解释型,大数据量略慢)

错误处理

完整异常机制(try/catch)

完整异常机制(try/except)

调试便利性

强(断点、Watch 窗口)

中(print / logging / Notebook)

部署与分发

.addin 包,统一部署到 Pro

脚本 / 工具箱,灵活部署

版本控制

完全支持(git)

完全支持(git)

企业系统集成

强(Active Directory / SQL / WPF)

中(requests / pyodbc)

AI / 机器学习集成

强(scikit-learn / tensorflow 等)

开发周期

长(SDK 复杂,原型成本高)

短(脚本快速验证和迭代)

四、C# 开发深度解析

4.1 C# 开发的核心优势

ArcGIS Pro SDK(C#)的不可替代性,体现在以下几个方面:

✅ 唯一能定制 ArcGIS Pro 界面的方式:自定义 Ribbon 选项卡、按钮、工具、菜单,这是 Python 根本做不到的

✅ 地图交互与编辑:监听地图事件(鼠标点击、要素选择、层树变更),实现自定义编辑工具

✅ 高性能几何处理:通过 SDK 的 Geometry API 直接操作内存中的几何对象,无需调用 GP 工具,效率极高

✅ 与 Windows 企业生态深度集成:WPF 界面、Active Directory 认证、SQL Server 直连、Windows 服务

✅ 强类型语言保障代码质量:编译时类型检查,大型项目的代码可靠性更高

✅ .addin 标准化分发:打包为 .addin 文件,一键部署到团队所有成员的 ArcGIS Pro

4.2 C# 最佳使用场景

场景一:为 ArcGIS Pro 开发自定义插件工具

当你需要在 ArcGIS Pro 的 Ribbon 工具栏中增加业务专属按钮(如「一键生成林权证」「批量导出报表」),并希望以 .addin 标准化部署到全单位的 ArcGIS Pro,C# 是唯一选择。

场景二:自定义停靠面板与交互界面

开发嵌入在 ArcGIS Pro 中的自定义 Dockpane(停靠面板),如实时查询面板、属性快速填报面板、业务系统数据查询窗口,这类需求完全属于 C# SDK 的领域。 

场景三:地图工具与实时交互

需要响应用户在地图上的操作(点击、框选、绘制)并执行业务逻辑时,例如「点击要素自动调取数据库中的档案信息」,必须用 C# 实现 MapTool 类。

场景四:高性能几何运算

对大量几何对象进行内存级运算(相交判断、缓冲区计算、坐标变换)且对实时性要求高时,C# 的 GeometryEngine API 直接操作内存中的几何对象,性能远优于通过 GP 工具走磁盘 I/O 的 Python 方案。

场景五:企业级 GIS 系统集成

当 ArcGIS Pro 需要与企业内部系统深度集成(OA 系统、数据库、认证中心),或者开发一套完整的「林业 GIS 业务系统」(不仅是脚本工具,而是一个可交付的软件产品)时,C# 才能支撑这种规模的工程。

4.3 C# 开发的局限与挑战

⚠️ 警示C# 开发的成本远高于 Python,以下场景选择 C# 会产生大量不必要的复杂度:

❌ 做数据处理自动化(批量运算、属性更新),Python 更简单高效

❌ 需要快速验证一个 GIS 分析流程,C# 的编译-部署周期太长

❌ 集成机器学习或深度学习模型,Python 生态无可替代

❌ 没有 C# 和 .NET 基础,入门成本极高(SDK 文档复杂,异步编程模型难理解)

❌ 脚本工具共享,C# .addin 需要匹配 ArcGIS Pro 版本,Python 工具箱无此限制

五、Python 开发深度解析

5.1 Python 开发的核心优势

arcpy + Python 的生态组合,是 GIS 数据工程师日常工作效率最大化的核心武器:

✅ 入门成本低,回报率高:Python 语法简洁,arcpy 的 API 直观,几天内可上手处理真实数据

✅ 与数据科学生态无缝融合:pandas 数据清洗、numpy 矩阵运算、matplotlib 可视化、scikit-learn 机器学习,均可与 arcpy 联合使用

✅ 天然适合自动化:批量处理成百上千个文件、图层、要素,只需简单的 for 循环

✅ Cursor 精细化数据操作:SearchCursor / UpdateCursor / InsertCursor 支持逐要素读写,是数据质检和自动修复的核心工具

✅ ArcGIS Pro Notebook 集成:交互式空间数据分析,代码 + 可视化地图同页显示

✅ 快速迭代:修改脚本后立即运行,无需编译,调试周期极短

5.2 Python 最佳使用场景

场景一:大规模批量地理数据处理

处理几十到几千个要素类、栅格文件、地理数据库,Python 的循环结构是最自然的解决方案。例如:将目录下所有 shapefile 批量转换为 CGCS2000 坐标系并导入 GDB。

场景二:空间分析与地理处理工作流自动化

将一套固定的地理分析步骤(叠加分析 → 属性统计 → 导出 Excel)自动化为脚本,一行命令跑完整个分析流程,并可以定时执行或集成到 Windows 任务计划程序。

场景三:数据质检与自动修复

利用 arcpy.da.SearchCursor 遍历每个要素,校验属性值的合规性(如林地类型代码是否在规定值域、面积是否为正数),发现问题时用 UpdateCursor 自动修复,无需人工逐条检查。

场景四:GIS + 数据科学联合分析

当 GIS 分析任务与统计、机器学习、可视化高度耦合时,Python 是唯一选择:

遥感影像建筑物足迹提取(结合深度学习模型)

土地利用变化的时序分析(pandas + arcpy 联合)

林地资源的统计报表自动生成(pandas + openpyxl)

场景五:脚本工具开发(SPToolsForPro 类型)

开发嵌入工具箱的 Python 脚本工具,提供参数对话框给用户使用,无需用户了解脚本细节。这类工具具备参数验证、进度条(arcpy.SetProgressorLabel)、错误提示等功能,是工具箱扩展的主流方式。

场景六:外部数据源集成与 API 调用

当 GIS 工作流需要与外部系统交互,Python 是最灵活的选择:

读取 Excel/CSV 与 GIS 属性表做关联更新(pandas + UpdateCursor)

调用 REST API 获取实时气象/土地数据(requests 库)

连接 PostgreSQL/SQLite 进行空间数据库操作(psycopg2 / sqlite3)

5.3 Python 开发的局限与边界

⚠️ Python 无法替代 C# 的场景以下需求 Python 无法实现,需切换到 C# SDK:

❌ 在 ArcGIS Pro 的 Ribbon 工具栏增加自定义按钮或工具组

❌ 开发嵌入 ArcGIS Pro 的自定义停靠面板(Dockpane)

❌ 监听并响应用户在地图画布上的鼠标操作(MapTool)

❌ 修改或扩展 ArcGIS Pro 的编辑工作流(自定义编辑操作)

❌ 打包成 .addin 插件进行标准化团队部署

六、底层差异:为什么是这样的格局

理解 C# 和 Python 在 ArcGIS Pro 开发中的定位差异,需要从 Esri 的技术架构说起。

架构层次

技术组件

开放接口

UI 展示层

ArcGIS Pro 应用程序(WPF + C#)

ArcGIS Pro SDK → C# 独享

业务逻辑层

ArcGIS Pro 核心引擎(C++ / C#)

SDK API(C#)/ arcpy(Python)

地理处理层

Geoprocessing Framework(GP 引擎)

arcpy 调用全部 GP 工具

数据访问层

Geodatabase Engine / File System

arcpy Cursor / SDK Data API

核心结论:ArcGIS Pro 的 UI 层仅对 C# SDK 开放;GP 工具层对 Python 和 C# 均开放,但 Python 调用更简便;数据访问层两者均可,Python 的 Cursor 更灵活。

🔍 本质区别C# 面向「应用程序开发」,目标是构建一个可交付的 GIS 软件产品;Python 面向「数据工程」,目标是高效处理和分析 GIS 数据。 

七、决策框架:如何选择开发语言

7.1 任务场景决策矩阵

使用场景

C# 开发

Python 开发

推荐

在 Pro 工具栏增加自定义按钮

原生支持(MapButton)

不支持

C#(唯一选择)

批量处理 GIS 数据文件

可实现但繁琐

for 循环天然适合

Python

开发停靠面板(Dockpane)

原生支持

不支持

C#(唯一选择)

属性表质检与自动修复

间接实现,成本高

UpdateCursor 精确控制

Python

读 Excel 关联更新 GIS 属性

需引入第三方库

pandas + UpdateCursor

Python

地图鼠标事件响应(MapTool)

原生支持

不支持

C#(唯一选择)

调用机器学习模型

弱(需 COM 互操作)

丰富(scikit-learn 等)

Python

高性能内存几何运算

GeometryEngine(极快)

arcpy.Geometry(较慢)

C#(性能优先)

调用 REST API 获取外部数据

可实现(HttpClient)

requests 库更简便

Python(优先)

打包 .addin 分发给团队

原生支持

不支持此格式

C#

开发脚本工具嵌入工具箱

不适用

Python 脚本工具原生支持

Python

与 SQL Server 深度集成

Entity Framework / ADO.NET

pyodbc(可实现)

C#(更成熟)

遥感影像分析与 ML 结合

不适用

arcpy + rasterio + pytorch

Python

ArcGIS Pro Notebook 探索分析

不支持

原生支持

Python

林权证等文档批量生成

OpenXML(较复杂)

python-docx / COM 互操作

Python(更快)

7.2 项目维度快速决策树

遇到一个开发需求,按以下顺序快速判断:

Step 1.需要修改 ArcGIS Pro 的界面(按钮/面板/菜单)吗?→ 是 → 必须用 C#

Step 2.需要响应地图上的鼠标/交互事件吗?→ 是 → 必须用 C#

Step 3.需要打包成 .addin 进行标准化部署吗?→ 是 → 必须用 C#

Step 4.以上都不是,主要做数据处理/分析/自动化?→ 优先用 Python

Step 5.数据处理中有超高性能几何计算需求?→ 考虑 C# SDK Geometry API 或混合方案

八、协同模式:C# 与 Python 的联合作战

在实际工程中,C# 和 Python 可以形成强大的协同。以下是两种经典协同架构:

协同模式一:C# 触发 Python 脚本

在 C# 开发的 ArcGIS Pro 插件中,通过按钮点击触发后台 Python 脚本执行繁重的数据处理任务:

// C# 侧:按钮点击后调用 Python 脚本           protected override async void OnClick() {           await ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() => {           var gp = Geoprocessing.ExecuteToolAsync(           "python", new[] { @"D:\scripts\batch_update.py" }           );           }); }

✅ 适用场景C# 提供「企业级 UI 入口」,Python 承担「数据处理引擎」,用户无需感知内部语言的切换。

协同模式二:Python 调用 C# 封装的 GP 工具

将复杂的 C# 地理处理逻辑封装为自定义 GP 工具,通过 Python 脚本统一调度:

# Python 侧:调用 C# 开发的自定义工具           import arcpy           # 批量调用企业级 C# 工具处理每个地块           for parcel in parcel_list:arcpy.EnterpriseTools.HighPerfIntersect(parcel, boundary, output_gdb)

✅ 适用场景C# 实现性能敏感的核心算法,Python 实现业务编排逻辑,最大化各自优势。

九、宁夏林业 GIS 项目实战建议

结合宁夏林业 GIS 项目工作特点与 SPToolsForPro 工具箱的扩展方向,以下是具体的语言选型建议:

工作任务

推荐语言

理由

林地空间相交与面积计算(批量)

Python

批量循环 + UpdateCursor,简洁高效

林班属性质检与自动修复

Python

SearchCursor + 条件判断,精确控制

SPToolsForPro 工具开发(数据处理类)

Python 脚本工具

参数对话框 + GP 工具调用,主流方式

SPToolsForPro 工具开发(UI 类)

C# .addin

需要 Pro 界面定制,只能用 C# SDK

遥感影像建筑物提取(ML 结合)

Python

rasterio + pytorch / onnx 集成

林权证文档批量生成

Python(docx/COM)

模板填写、批量生成,Python 生态丰富

征地数据叠加统计报表

Python(pandas)

Excel 导出、数据透视,pandas 更强

开发「一键导出林地报告」Ribbon 按钮

C# SDK

界面定制,.addin 部署,C# 唯一能实现

ArcGIS Pro 地图上点击查询档案

C# SDK(MapTool)

地图交互事件,C# 独占接口

Notebook 中探索性空间分析

Python Notebook

交互式可视化,保留分析思路

批量修改 GDB 中 SRS/投影

Python(arcpy)

循环 + DefineProjection,代码 5 行搞定

高性能几何相交(实时 UI 场景)

C# GeometryEngine

内存操作,避免 GP 工具的磁盘 IO

🏆 工具箱扩展原则SPToolsForPro 中「数据处理类工具」优先用 Python 脚本工具实现;「界面集成类工具」(需要嵌入 Pro 界面)用 C# SDK 开发 .addin,两者可以通过「C# 调用 Python GP 工具」的方式互补。

十、结语与学习路径建议

C# 和 Python 在 ArcGIS Pro 开发中并不竞争,而是构成了一个完整的技术栈:Python 是数据工程的脊梁,C# 是应用程序的骨架。理解这一点,就能避免「用 Python 去做 C# 该做的事」或「用 C# 去写数据处理脚本」这类常见的方向性错误。

维度

C#(ArcGIS Pro SDK)

Python(arcpy)

定位

GIS 软件产品开发

GIS 数据工程自动化

最强场景

界面定制 · 地图交互 · .addin 分发

批量处理 · 数据分析 · 工具箱扩展

学习优先级

有界面开发需求再学

入门 GIS 开发首选

与 Pro 关系

深度嵌入(修改 Pro 本身)

外部调用(驱动 Pro 的功能)

学习路径建议

Python 路径(GIS 数据工程方向)

1.Python 基础(数据类型 / 控制流 / 函数 / 文件操作)—— 2-4 周

2.arcpy 核心 API:GP 工具调用 / Cursor 类 / 环境变量 —— 2 周

3.pandas + openpyxl 数据处理 + 报表生成 —— 1 周

4.开发第一个完整的 Python 脚本工具并嵌入工具箱 —— 1 周

5.进阶:arcpy 空间分析 / Notebook / 遥感影像处理 —— 持续学习

C# 路径(GIS 应用开发方向)

1.C# 语言基础(类型系统 / 面向对象 / async/await)—— 4-6 周

2.WPF 基础 + MVVM 设计模式 —— 2-3 周

3.ArcGIS Pro SDK 入门(Add-in 开发 / Button / MapTool)—— 2 周

4.开发第一个完整 .addin 并部署测试 —— 1 周

5.进阶:Dockpane / Geometry API / 企业系统集成 —— 持续学习

一句话总结:先精通 Python(arcpy),能让你的日常 GIS 工作效率提升 10 倍;再学 C# SDK,能让你把 GIS 能力做成可交付的专业软件产品。

——  GIS 技术文档系列

2026 年 6 月

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 02:20:06 HTTP/2.0 GET : https://f.mffb.com.cn/a/497081.html
  2. 运行时间 : 0.311099s [ 吞吐率:3.21req/s ] 内存消耗:4,545.20kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=7a7c24adcbaf4df0d86cb0abfc2c87fe
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000386s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000559s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000286s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000289s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000538s ]
  6. SELECT * FROM `set` [ RunTime:0.000482s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000568s ]
  8. SELECT * FROM `article` WHERE `id` = 497081 LIMIT 1 [ RunTime:0.024517s ]
  9. UPDATE `article` SET `lasttime` = 1783016406 WHERE `id` = 497081 [ RunTime:0.012647s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000361s ]
  11. SELECT * FROM `article` WHERE `id` < 497081 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000479s ]
  12. SELECT * FROM `article` WHERE `id` > 497081 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000582s ]
  13. SELECT * FROM `article` WHERE `id` < 497081 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.087815s ]
  14. SELECT * FROM `article` WHERE `id` < 497081 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.098778s ]
  15. SELECT * FROM `article` WHERE `id` < 497081 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.011999s ]
0.312595s