PHP uzantıları yapmak için yudum, bunu denediniz mi?

1 Cevap php

Ben uzantıları aracılığıyla PHP için kullanılabilir yapmak istiyorum C (C + +) ile yazılmış birkaç küçük kütüphaneler ve sarma var. I writing proper PHP extensions birkaç öğreticiler okumak ve ancak ben kütüphanelere ek olarak uzantıları sürdürmenin güçlük istemiyorum, zor görünmüyor.

I SWIG benim için mükemmel Zend PHP 5 ile uyumlu olan bina uzantıları destekler okudum. Ancak, destek yudum belgelerine göre beta gibi görünüyor.

Benim kütüphaneler C kullanımının bir meta örneği olarak, oldukça yaygındır:

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);
}

Herkes bu kadar basit kütüphaneler için uzantıları yapmak için SWIG kullanarak paylaşmak için herhangi bir deneyimleri var mı? Herkes yapı isteğe bağlı bir parçası olarak php uzantıları yapmak için SWIG kullanarak C dilinde yazılmış herhangi bir özgür / açık kaynak projeleri biliyor mu?

Teşekkür peşin, bazı geribildirim almak umuyorum. Olumlu olursa, ben sadece, ben sadece elle uzantıları yapma zaman harcarsınız .. gerçekten SWIG tanımak için biraz zaman ayırmak gerekir.

1 Cevap

Birkaç yıl önce ben bir C API dayalı bir prototip Python modülü üretmek için bir projede yer aldı. Biz proje üzerinde insanların hiçbiri Python C API biliyordu çünkü bize başlamak için SWIG kullanmaya karar verdi. Prensipte bazı otomobil üretilen fonksiyonları olan fikri gerçekte büyük geliyordu iken biz çimdik ve yudum bizim ihtiyaçlarına uygun üretilen kod özelleştirmek için gerekli çünkü bize daha fazla iş neden oldu.

PHP açısından bakıldığında bir PHP C uzantısı korumak ve yudum gidiyor kolay olacaktır elle kod yazma, yardım olacak "basit" C işlev (ler) için inanmıyorum. Bu almak veya Extending and Embedding PHP Sara Golemon tarafından okunmaya değer olabilir.