views:

41

answers:

2

Hi, in a recent project I've come really need the lib tre matching library.

However the project is in php, and there are no php bindings for the library.

I've tried to google how to create an interface for c libs, but all I found was the dl function which seams to load only php extensions.

What am I missing?

+1  A: 

Write an extension that exposes tre to PHP (or find one that already does). A good starting point is here.

Be warned that you won't be able to load your extension on most hosting services.

Marcelo Cantos
+5  A: 

If no "php bindings" exist, it looks like you'll have to develop them ;-)

This is done via a PHP extension -- such as, for example :

  • the mysql extension, that's used to communicate with MySQL, binding the libmysql library (with PHP <= 5.2)
  • The curl extension, that's a wrapper arround the curl library
  • and so many others...


If you want to learn more about writing PHP extensions, those links will probably interest you :
(Note that it's not quite an easy task -- but if you are required to... well ^^ ; and some would say it's not that hard )

And, if you are really interested by the subject, and ready to spend some money on it, you could buy the book Extending and Embedding PHP (some pages are available as preview on Google Books too) ; It's considered as the book to read when interested on this subject (In fact, I've bought it some time ago, and, in my opinion, it is indeed an interesting read)

BTW, the author of that book is also the author of the first four articles I linked to ;-)

Pascal MARTIN
I guess that means, there is no such thing like the python ctypes module for directly interfacing C code..What about this SWIG thing?
Thomas Ahle
Sorry, no idea about the SWIG thing : I've heard about it, but never used it myself ;;; about ctypes, I don't think there's much : the only thing like that I know about is FFI ( http://pecl.php.net/package/ffi ) and the last version was an alpha, in 2004... ;;; the standard way of using an external library, in PHP, is to write an extension as a wrapper arround it.
Pascal MARTIN
I see. Thank you.
Thomas Ahle
You're welcome :-)
Pascal MARTIN