PHPの拡張機能を構築しようとしています。Sara Golemon の本を読んだ後、共有モジュールとしてコンパイルできる基本的な拡張機能を手に入れました。さらに、PHP 自体に沿って静的にコンパイルすることもできます。
ここで、特定の内部関数呼び出しをインターセプトし、これらの呼び出しを拡張機能に伝えるために、PHP インタープリターを変更したいと考えています。これは、拡張機能が PHP で静的にコンパイルされている場合にのみ実行したいと考えています。それ以外の場合は、インタープリターのビルド プロセスで変更されていない PHP バイナリが生成されます。私の理解では、C プリプロセッサを使用する必要があります。ただし、私の目標を達成するには、PHP が拡張機能を使用してコンパイルするように構成されている場合にのみ発生するプリプロセッサ フラグが必要です(つまり、./configure --enable-myextension)。残念ながら、そのようなフラグは見つからず、configure スクリプトによって設定されているようにも見えません。
ここで、拡張機能のコード内でプリプロセッサ フラグを設定しようとしましたが、うまくいきません。私の拡張機能は、ビルド プロセスの後半 (つまり、インタープリターのコアのほぼ後) で最初に触れられ、そこで設定したフラグは、インタープリター コードの大部分がコンパイルされているときにアクティブではありません。
何かご意見は?上記は合理的に聞こえますか?