tags:

views:

877

answers:

1

My home system has a version of PHP compiled with the SOAP extension. The live system has a version of PHP without the SOAP extension, and most of the scripts rely on the NuSOAP library quite heavily. The fact that NuSOAP and the SOAP extension use the same names for their classes is a terrible headache.

How can I disable the SOAP extension on my home system without doing a reinstall / recompile? It's compiled in, and not enabled by a extension directive in a ini file.

+2  A: 

it's an extension, so you can disable it in php.ini. Just outcomment the line. Remember to restart Apache afterwards.

I have found nusoap to be rather buggy, so upgrading to native soap should be a priority. If this isn't immediately possible, it would be a good idea to switch to nusoap-for-php5, since it allows you to run both the native soap extension and nusoap alongside. You can then implement new code against native soap, while still using nusoap for legacy code.

troelskn
The problem is that it's compiled in. There's to directive in any of the ini files to enable the extension, making it imposiible to disable it that way... :(
Jrgns
How do you mean compiled in?
Ross
PHP binary was compiled with the --enable-soap directive, making it part of the binary, and not a dynamically loadable extension. And I suspect that the answer lies in that fact: its part of the binary, you can't disable it.
Jrgns
ah .. you're right. Could you port the nusoap code to nusoap-for-php5 then?
troelskn
Not immediately, no. It's a large system and very delicate system, so I'm just working around it on my home dev system for now...
Jrgns
It's literally just a search and replace operation. Nothing but the classname has to change. Even without test-coverage, it should be fairly easy to do without shooting your foot off.
troelskn