我正在尝试为 PHP 构建一个扩展。在遵循 Sara Golemon 的书之后,我有了一个基本扩展,我可以将其编译为共享模块,此外,我可以沿着 PHP 本身静态编译它。
现在我想修改 PHP 解释器以拦截特定的内部函数调用并将这些调用传达给我的扩展。我只想在我的扩展使用 PHP 静态编译时才这样做——否则解释器构建过程应该生成一个未修改的 PHP 二进制文件。我的理解是我应该使用 C 预处理器。然而,为了实现我的目标,我需要一个预处理器标志,它只会在 PHP 配置为使用我的扩展进行编译时引发(即 ./configure --enable-myextension)。不幸的是,我找不到这样的标志,配置脚本似乎也没有设置。
我应该在这里说,我已经尝试在我的扩展程序代码中设置 preprossessor 标志,但这不起作用。我的扩展在构建过程的后期首次被触及(即大致在解释器核心之后),并且在编译大量解释器代码时,我在那里设置的标志是不活动的。
有什么想法吗?以上听起来合理吗?