SWIG для создания расширений PHP, вы пробовали это?

StackOverflow https://stackoverflow.com/questions/452885

  •  19-08-2019
  •  | 
  •  

Вопрос

У меня есть несколько небольших библиотек и оболочек, написанных на 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, чтобы сделать расширения для библиотек такими простыми? Кто-нибудь знает о каких-либо проектах с открытым исходным кодом, написанных на C, которые используют SWIG для создания расширений php в качестве необязательной части сборки?

Заранее спасибо, я надеюсь получить отзыв. Если это хорошо, я просто посвящу некоторое время тому, чтобы по-настоящему познакомиться с SWIG ... если нет, я потрачу время только на создание расширений вручную.

Это было полезно?

Решение

Несколько лет назад я участвовал в проекте по созданию прототипа модуля Python на основе C API. Мы решили использовать SWIG, чтобы начать работу, так как никто из участников проекта не знал Python C API. Несмотря на то, что в принципе идея иметь некоторые автоматически сгенерированные функции звучала великолепно, в действительности это заставило нас больше работать, поскольку нам нужно было настроить и настроить сгенерированный SWIG-код в соответствии с нашими потребностями.

С точки зрения PHP, я поддерживаю расширение PHP C и не верю, что для вашего " simple " С функции (ы), идущие с SWIG, помогут, написание кода будет проще. Возможно, вам стоит получить или прочитать Расширение и встраивание PHP Сара Големон.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top