C (C++ ではない) で書かれたいくつかの小さなライブラリとラッパーがあり、拡張機能を介して PHP で利用できるようにしたいと考えています。適切な PHP 拡張機能の作成に関するいくつかのチュートリアルを読みましたが、難しくはないように思えますが、ライブラリに加えて拡張機能を維持するという面倒なことはしたくありません。
SWIGは Zend PHP 5 と互換性のある拡張機能の構築をサポートしていると読みましたが、これは私にとって完璧です。ただし、SWIG のドキュメントによると、サポートはベータ版のようです。
C での使用法のメタ例として、私のライブラリはかなり一般的です。
int main(void)
{
struct libfoo *foo;
char **tmp;
foo = foo_init();
if (foo == NULL) {
fprintf(stderr, "Could not allocate foo\n");
return 1;
}
tmp = foo_parse(foo, "/foo/foo.txt");
......
foo_finit(foo);
}
SWIG を使用してライブラリの拡張機能をこれほどシンプルにする経験を共有できる人はいますか? ビルドのオプション部分として PHP 拡張機能を作成するために SWIG を使用している、C で書かれたフリー/オープン ソース プロジェクトを知っている人はいますか?
フィードバックをお待ちしております。それが肯定的である場合、私は SWIG を実際に理解することに時間を割きます。