扩展模块生成

genExtension() 是流水线里最大的一块生成逻辑,产出 extension-<target>.cc——一个标准 Zend 扩展模块。它把前面收集的所有类、函数、常量、全局变量缝合进 Zend 的生命周期钩子(MINIT / MINIT / RINIT / RSHUTDOWN)。

Sources: src/Translator.php

生成结构

flowchart TD
    A["extension-<target>.cc"] --> B["全局变量 / 类表 / 函数表 / 属性表 声明"]
    B --> C["php_get_class / php_get_func / php_get_method / php_get_prop"]
    C --> D["ext_functions[] (ZEND_FE 列表)"]
    D --> E["PHP_MINIT: 注册类/反射处理器/符号"]
    E --> F["PHP_RINIT: php_app_init + eval(main)"]
    F --> G["PHP_RSHUTDOWN: php_app_clean + request_shutdown"]
    G --> H["zend_module_entry"]

Sources: src/Translator.php

关键片段

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

模式差异

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

相关阅读