TypePHP 不是从零实现 PHP 语义,而是站在 PHPX(Swoole 的 C++ PHP 绑定库)与 Zend 引擎 embed 之上。生成的 C++ 大量调用 phpx.h 提供的 php:: 命名空间 API,最终把 Zend 引擎链接进产物。
Sources: src/Translator.php · README.md
Translator::$globalHeaders 列出每个编译单元默认包含的头:
['cstring', 'phpx.h', 'phpx_helper.h', 'phpx_big_int.h',
'phpx_big_float.h', 'phpx_decimal.h', 'typephp_helper.h',
'typephp_fiber_generator.h', 'phpx_std.h']
高精度类型(BigInt/BigFloat/Decimal)的头正是此处引入;typephp_* 是 TypePHP 自带的扩展头(Fiber/Generator、helper)。
Sources: src/Translator.php
compile() 会追加 phpx 的 src/misc/ 源文件(C++ 运行时实现),以及 embed 模式下的 typephp_main.cc、bin 模式下的 cli 标题源。这些 misc 源受 增量编译缓存 的 ABI 指纹保护。
Sources: src/Translator.php
typephp_fiber_generator.cc/.h 提供协程与生成器支持,详见 docs/YIELD_GENERATOR.md;docs/MIXED_CPP_PHP.md;typephp_install_reflection_attribute_handlers() 在 MINIT 安装反射/属性处理器;extends 处理见 docs/CLASS_INHERITANCE.md。Sources: src/Translator.php · docs/YIELD_GENERATOR.md · docs/MIXED_CPP_PHP.md · docs/CLASS_INHERITANCE.md
运行时要求 libphp.so(Linux)/ php8ts.lib(Windows)与 libphpx.so 就位;缺库时可用 docs/LIBPHP_INSTALLER.md 自动构建。
Sources: README.md · docs/LIBPHP_INSTALLER.md