Domanda

Ho alcune piccole librerie e involucri scritti in C (non C ++) che vorrei rendere disponibili a PHP tramite estensioni. Ho letto diversi tutorial su scrivendo le corrette estensioni PHP e non sembra difficile , tuttavia non voglio la seccatura di mantenere le estensioni oltre alle librerie.

Ho letto che SWIG supporta la creazione di estensioni compatibili con Zend PHP 5, che è perfetto per me . Tuttavia, il supporto sembra essere beta secondo la documentazione SWIG.

Le mie librerie sono piuttosto comuni, come meta esempio di utilizzo in 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);
}

Qualcuno ha esperienze da condividere con l'uso di SWIG per rendere estensioni per librerie così semplici? Qualcuno è a conoscenza di progetti gratuiti / open source scritti in C che utilizzano SWIG per creare estensioni php come parte facoltativa della build?

Grazie in anticipo, spero di ricevere un feedback. Se è positivo, dedicherò solo un po 'di tempo a conoscere veramente SWIG .. in caso contrario, passerò il tempo a fare le estensioni a mano.

È stato utile?

Soluzione

Alcuni anni fa sono stato coinvolto in un progetto per produrre un prototipo di modulo Python basato su un'API C. Abbiamo deciso di utilizzare SWIG per iniziare poiché nessuna delle persone del progetto conosceva l'API C di Python. Sebbene in linea di principio l'idea di avere alcune funzioni generate automaticamente suonasse alla grande nella realtà, ci ha causato più lavoro poiché abbiamo dovuto modificare e personalizzare il codice generato da SWIG per soddisfare le nostre esigenze.

Dal punto di vista di PHP, mantengo un'estensione C di PHP e non credo che per il tuo "semplice" Le funzioni C che vanno con SWIG saranno di aiuto, scrivere il codice a mano sarà più facile. Potrebbe valerti la pena ottenere o leggere Estensione e integrazione di PHP di Sara Golemon.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top