tags:

views:

433

answers:

6

A friend was showing me a API made with a COM Object and a SOAP interface. He showed me it worked in php in windows but I have serious doubts if it is achievable in linux or any other non-windows OS. Thanks!

+1  A: 

The COM library in PHP is a part of the Windows only extension.

Ólafur Waage
+1  A: 

If your friend's demo application was calling the COM API via the SOAP interface then there should be very few reasons why you can't access the functionality on a non-windows platform.

Kev
+1  A: 

No, you can't access com object from linux/unix. only from win machine.

Possible solution is to put another web server on the windows machine that will talk to COM object, and php from the linux machine will talk to the php on the windows machine or build a webservice around that COM?

joe
+1  A: 

As far as I know, COM is Windows specific (although WINE or Mono might get it running under Linux). So if COM is used as part of the client code, then you might be out of luck.

If the COM object is running on a Windows server and providing a SOAP interface, then you should be fine - just connect to the Windows machine over HTTP and make the SOAP request. The server is irrelevent.

David Dorward
+2  A: 

Depends on where the COM object is running. A Linux box can serve a COM object (ActiveX) to a windows client browser. A Linux box can make a SOAP call to a COM object running on a Windows box.

But if you want to run the COM object on Linux, it needs to at least be rebuilt for Linux, and probably into something more Linuxy (an .so). Probably any PHP COM support isn't ported to the Linux version, but you can call into .so files through C bindings.

Lou Franco
A: 

may be fooling around with wine you "could" achieve something... but I doubt it's worth the effort...

I guess your best choice is to have a windows server running and then figure out some way to interact with it, preferably thru http...

If the api already provides a soap interface then use it (like kev said) otherwise you should develop something like that (like Chells said), or maybe something even more simple, like a plain house-made get / post page...

opensas