编译器后端

TypePHP 不直接调 g++/cl,而是抽象出 平台(Platform)+ 编译器后端(Backend) 两层,由工厂在启动时自动探测。这样同一份生成代码能在 GCC / Clang / MSVC 下编译。

Sources: src/Translator.php · src/Backend/

抽象结构

角色
PlatformFactory按 OS 创建 Windows / Linux / macOS 平台对象
CompilerFactorydetectCompilerName() / createByName() / autoDetect() 选择后端
CompilerBackend(接口)定义编译/链接命令抽象
GccLikeBackendGCC / Clang 共用逻辑
Gcc / Clang具体后端
MsvcMSVC(Windows)后端

detectPlatform() 先建平台,再探测编译器名,最后 CompilerFactory::createByName() 生成后端;若失败则告警并回退到旧逻辑(initializeNewArchitecture())。

Sources: src/Translator.php · src/Translator.php

命令生成

后端只负责「给定源/目标/选项 → 返回命令字符串」。真实的进程执行在 构建流水线NativeBuilder 中。例如:

Sources: src/Translator.php · src/Translator.php

预编译头

后端是否支持 PCH 由 supportsPrecompiledHeaders() 决定;支持的会在构建期预编译 phpx.h 等全局头,显著加速后续编译单元。

Sources: src/Translator.php · src/Build/PrecompiledHeaderManager.php

相关阅读