我有一些用 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 使库的扩展如此简单?有谁知道使用 SWIG 将 php 扩展作为构建的可选部分用 C 编写的任何免费/开源项目?
在此先感谢,我希望得到一些反馈。如果它是积极的,我会花一些时间真正了解 SWIG。如果不是,我会花时间手工制作扩展。