当前位置:首页>php>PHP 编译成 exe?ThinkPHP 8 * TypePHP 落地实战

PHP 编译成 exe?ThinkPHP 8 * TypePHP 落地实战

  • 2026-09-03 18:37:44
PHP 编译成 exe?ThinkPHP 8 * TypePHP 落地实战

💡 引言:当 PHP 不再需要解释器

⚡ TypePHP × ThinkPHP 8.0 原生 AOT 编译工程。基于 TypePHP (TPC) AOT 编译器与 ThinkPHP 8.x 打造的 Windows 原生高性能自包含二进制 Web 服务

你是否曾想过:PHP 写的 Web 系统,无需安装 PHP 环境、无需 Nginx/Apache、甚至无需明文暴露任何一行 .php 源码,直接双击一个 .exe 就能毫秒级启动并对外提供高性能 Web 服务?

在以往,这几乎是 Go、Rust 或 C++ 的专属领域。传统的 PHP 打包方案要么是简单的 Phar 归档,要么是套壳嵌入解释器,本质上依然是 Zend VM 逐行解释字节码。

而由 Swoole 团队打造的 TypePHP(TPC 编译器),彻底打破了这一边界!它将 PHP 代码在编译期直接转译为 C++ 原生机器码,通过 MSVC / GCC 生成原生二进制文件,实现了 9.2x 以上的吞吐性能提升 与 完全自包含的独立分发

今天,我们就以国内最主流的框架 ThinkPHP 8.x 为例,带大家完整跑通 TypePHP 在 Windows 平台上的 AOT 深度编译全流程,并分享在深度融合过程中踩过的那些“硬核”暗坑!

🏗️ 架构原理解析:PHP 是如何变成机器码的?

在传统的 PHP-FPM / CLI 架构下,请求到达时需经过:词法分析 ➔ 语法分析 ➔ 生成 OPCODE ➔ Zend VM 虚拟机解释执行

而 TypePHP 的 AOT(Ahead-of-Time,预编译)机制彻底重构了执行路径:

┌────────────────────────┐

│  ThinkPHP 8.x 业务源码  │

└───────────┬────────────┘

            │  ① TypePHP (TPC) 静态语法转译

            ▼

┌────────────────────────┐

│  标准 C++ 原生代码     │ (.cc / .h 头文件)

└───────────┬────────────┘

            │  ② MSVC (cl.exe / link.exe) 机器码编译

            ▼

┌────────────────────────┐

│  原生可执行文件 .exe   │ (内嵌 PHP 8.5 Embed SAPI 引擎)

└────────────────────────┘

消除解释开销:PHP 函数、控制流、类型判断直接被翻译为等价的 C++ 指令与机器码。

内嵌 Embed SAPI:在单一进程内驻留内嵌式 PHP 运行时,与 C++ ABI 直接通信,无进程切换与 IPC 开销。

绝对源码保护:部署物中没有任何明文 PHP 脚本,核心算法与商业逻辑无法被逆向。

🛠️ 第一步:环境搭建与准备

1. 软件环境清单

操作系统:Windows 10 / 11 64 位

C++ 工具链:Visual Studio 2022(社区版免费)

TypePHP SDKtpc_v0.6.5_windows_x86_64

2. 基础安装指南

1.安装 Visual Studio 2022

2.  下载地址:https://visualstudio.microsoft.com/zh-hans/vs/community/

3.  安装时务必勾选 “使用 C++ 的桌面开发”

4.下载 TypePHP SDK

5.  官方 GitHub Releases 直接下载:👉 https://github.com/swoole/typephp/releases

6.  解压至本地工作目录(例如 D:\workspace\tpc_v0.6.5_windows_x86_64)。

7.配置系统环境变量

8.PHP_HOME = D:\workspace\tpc_v0.6.5_windows_x86_64

9.PHPX_HOME = D:\workspace\tpc_v0.6.5_windows_x86_64\phpx

10.Path 追加:D:\workspace\tpc_v0.6.5_windows_x86_64

3. 🚨 必须配置的性能秘诀:Windows Defender 白名单

血泪经验:Windows Defender 实时防护(MsMpEng.exe)会在编译时拦截扫描几百个临时生成的 .cc 和 .obj 文件,导致编译耗时从 1 分钟暴增到 10 分钟甚至卡死!

操作:打开 Windows 安全中心 ➔ 病毒和威胁防护设置 ➔ 排除项,将项目根目录与 TPC SDK 目录加入白名单。

📦 第二步:工程适配与编译配置

1. 编写编译器配置 project.yml

在项目根目录下创建 project.yml,声明要转译的代码范围与 MSVC 编译参数:

name:typephp-think

sources:

-main.php

-vendor/psr

-vendor/league/mime-type-detection/src

-vendor/league/flysystem/src

-vendor/league/flysystem-local

-vendor/symfony/polyfill-mbstring

-vendor/symfony/var-dumper

-vendor/topthink/framework/src

-vendor/topthink/think-orm/src

-vendor/topthink/think-helper/src

-vendor/topthink/think-container/src

-vendor/topthink/think-validate/src

-vendor/topthink/think-trace/src

-vendor/topthink/think-dumper/src

-vendor/topthink/think-filesystem/src

-app

ignore:

-app/provider.php

-app/middleware.php

-app/service.php

-app/event.php

-config

-route

-extend

-view

output:build/myapp

mode:bin

optimize:2# 生产开启 /O2 极致优化

job:16# 并发编译线程数(建议设为 CPU 核心数)

debug:false

cxx-flags:

-/bigobj

-/MP# 启用 MSVC 多处理器并发编译

2. 自动化编译脚本 build_env.bat

@echo off

rem 1. 设置 SDK 环境变量 (优先读取系统变量)

if "%PHP_HOME%"=="" set PHP_HOME=D:\workspace\tpc_v0.6.5_windows_x86_64

set PHPX_HOME=%PHP_HOME%\phpx

set PATH=%PHP_HOME%;%PATH%

rem 2. 智能探测 Visual Studio MSVC 工具链

where cl.exe >nul 2>&1

if errorlevel 1 (

    if exist "D:\Program Files\Microsoft Visual Studio\18\Community\VC\Auxiliary\Build\vcvars64.bat" (

        call "D:\Program Files\Microsoft Visual Studio\18\Community\VC\Auxiliary\Build\vcvars64.bat" >nul

    ) else if exist "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat" (

        call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat" >nul

    ) else if defined VS_VCVARS64 (

        call "%VS_VCVARS64%" >nul

    )

)

rem 3. 产物目录准备与 php.ini 自动同步

if not exist "%~dp0build" mkdir "%~dp0build"

if exist "%~dp0php.ini" copy /y "%~dp0php.ini" "%~dp0build\php.ini" >nul

rem 4. 执行 AOT 编译

cd /d %PHP_HOME%

tpc.exe "%~dp0project.yml" > "%~dp0build_log.txt" 2>&1

在终端执行:

.\build_env.bat

首次全量编译:编译 390 个源文件(约 1~2 分钟),生成全局 .obj 缓存。

日常增量编译:修改 PHP 业务代码后重新运行,仅需 2~4 秒 即可完成重新链接!

🎯 第三步:运行与效果体验

编写启动脚本 run_env.bat

@echo off

setlocal

if "%PHP_HOME%"=="" set "PHP_HOME=D:\workspace\tpc_v0.6.5_windows_x86_64"

set "PATH=%PHP_HOME%;%PATH%"

cd /d %~dp0

.\build\myapp.exe %*

1. 运行自检验证

.\run_env.bat info

终端会输出当前的运行时信息:

PHP_VERSION: 8.5.10

PHP_SAPI: embed

extension_loaded(pdo_mysql): yes

HTTP STATUS: 200

2. 启动原生 Web 服务

.\run_env.bat run -p 8788 -H 0.0.0.0

打开浏览器访问 http://localhost:8788/,即可看到完全由 AOT 编译驱动的 ThinkPHP 8 纯白大屏首页!点击 /hello/world 动态路由,响应时间达到亚毫秒级

💥 深度复盘:今天遇到的 5 大实战暗坑与解决方案

在将 ThinkPHP 与 TypePHP 深度集成的过程中,我们踩平了以下 5 个典型问题,建议收藏备用:

坑 1:编译后的 exe 换机器后报找不到 autoload.php

原因:TPC 编译期会将 PHP 的 __DIR__ 固化为编译机器当时的绝对路径字面量。当程序移动到新目录时,仍会尝试读取旧路径。

破解之道:在 main.php 中利用 getcwd() 优先动态获取当前工作目录:

$autoload = getcwd() . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php';

if (!file_exists($autoload)) {

$autoload = __DIR__ . '/vendor/autoload.php';

}

require$autoload;

坑 2:全新克隆代码链接报错 LNK1104: 无法打开 myapp.exe.rsp

原因:Git 默认不提交空文件夹,缺失 build/ 目标目录导致 MSVC 写入链接参数失败。

破解之道:在 build_env.bat 中前置增加自动 mkdir build,并在 Git 中添加 .gitkeep 保留目录结构。

坑 3:php.ini 扩展路径写死导致 pdo_mysql 加载失败

原因php.ini 中的 extension_dir 写死固定路径,移植性极差。

破解之道:利用 PHP 原生支持的环境变量扩展语法:

extension_dir="${PHP_HOME}/ext"

extension=php_curl.dll

extension=php_pdo_mysql.dll

extension=php_mbstring.dll

坑 4:php think run 报错 TypeError: Argument #2 ($port) must be int

原因:命令行参数 $input->getOption('port') 取得的是 string 类型,而 ThinkPHP 8 的 RunServer::runBuiltinServer 参数声明了严格强类型 int $port

破解之道:在 RunServer.php 接收参数处做显式类型转换:

$host = (string$input->getOption('host');

$port = (int$input->getOption('port');

坑 5:重新编译提示 The process cannot access the file...

原因:上一次运行的 myapp.exe 在后台驻留,Windows 文件锁禁止覆盖写入。

破解之道:在 PowerShell 中执行一键清理进程后再编译:

Get-Process myapp, tpc, cl, link -ErrorAction SilentlyContinue | Stop-Process -Force

.\build_env.bat

坑 6:启动 tpc.exe 弹出大量 Unable to load dynamic library

原因:官方发布的 SDK 压缩包自带的 php.ini 残留了 CI 编译机旧路径(extension_dir=C:\tools\php\ext)。

破解之道:打开 SDK 根目录下的 php.ini,将 extension_dir 修正为本地解压的绝对路径(如 D:\workspace\tpc_v0.6.5_windows_x86_64\ext)。

坑 7:链接时报错 link: extra operand '/LIBPATH:...'

原因:在普通终端中直接运行 tpc.exe 时,Git 安装目录下的 GNU link.exeC:\Program Files\Git\usr\bin\link.exe)劫持了微软 MSVC link.exe

破解之道:必须使用 "x64 Native Tools Command Prompt for VS 2022" 终端,或直接通过我们封装的 build_env.bat 执行编译(内部已自动完成 MSVC 工具链优先级置顶)。

🔮 结语与展望

从传统的脚本解释执行,到 JIT,再到如今的 TypePHP AOT 纯机器码编译,PHP 生态正在迎来一场前所未有的工程化革命:

1.交付形态变革:PHP 应用可以像 Go 程序一样,打成单一可执行二进制文件交付给客户,彻底告别复杂的宿主环境部署。

2.极致安全防护:源码全部转为 C++ 二进制机器码,商业软件源代码保护不再是痛点。

3.云原生极致性能:启动零延迟、内存占用可控、吞吐大幅跃升。

如果你对 PHP AOT 原生编译 或 云原生架构实践 感兴趣,欢迎在评论区交流讨论!

欢迎关注微信公众号「开源技术小栈」专注于探索 PHP 现代编译技术、云原生与高性能架构实战!

最新文章

随机文章

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