/* tell server to translate to classes we provide if possible */ $server->_auto_translation = true; /* This is a simple example of implementing a custom call handler. If you do this, the soap server will ignore objects or functions added to it, and will call your handler for **ALL** soap calls the server receives, wether the call is defined in your WSDL or not. The handler receives two arguments, the method name being called, and the arguments sent for that call. */ function myCallHandler($methodname, $args) { global $soapclass; return @call_user_func_array(array($soapclass, $methodname), $args); } $server->setCallHandler('myCallHandler', false); require_once 'example_server.php'; $soapclass = new SOAP_Example_Server(); $server->addObjectMap($soapclass, 'urn:SOAP_Example_Server'); if (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == 'POST') { $server->service($HTTP_RAW_POST_DATA); } else { require_once 'SOAP/Disco.php'; $disco = new SOAP_DISCO_Server($server, 'ServerExample'); header("Content-type: text/xml"); if (isset($_SERVER['QUERY_STRING']) && strcasecmp($_SERVER['QUERY_STRING'], 'wsdl') == 0) { echo $disco->getWSDL(); } else { echo $disco->getDISCO(); } exit;