Example #1
1
<?php

ini_set("soap.wsdl_cache_enabled", 0);
ini_set("soap.wsdl_cache_dir", "/tmp");
ini_set("soap.wsdl_cache_ttl", 86400);
if (isset($_GET['wsdl'])) {
    $autodiscover = new Zend_Soap_AutoDiscover();
    $autodiscover->setBindingStyle(array('style' => 'rpc'));
    $autodiscover->setOperationBodyStyle(array('use' => 'literal'));
    $autodiscover->setClass('ProviderWebServiceSyncUnits');
    $data = file_get_contents('php://input');
    $autodiscover->handle($data);
} else {
    $server = new Zend_Soap_Server(__URLSERVERAPP__ . '/webservices/unidades/server.php?wsdl', array('cache_wsdl' => false));
    $server->setClass('ProviderWebServiceSyncUnits');
    $server->setPersistence(SOAP_PERSISTENCE_REQUEST);
    $data = file_get_contents('php://input');
    $server->handle($data);
}
Example #2
0
 function testAddFunctionSimpleWithDifferentStyle()
 {
     $scriptUri = 'http://localhost/my_script.php';
     $server = new Zend_Soap_AutoDiscover();
     $server->setBindingStyle(array('style' => 'document', 'transport' => 'http://framework.zend.com'));
     $server->setOperationBodyStyle(array('use' => 'literal', 'namespace' => 'http://framework.zend.com'));
     $server->addFunction('Zend_Soap_AutoDiscover_TestFunc');
     $dom = new DOMDocument();
     ob_start();
     $server->handle();
     $dom->loadXML(ob_get_clean());
     $dom->save(dirname(__FILE__) . '/_files/addfunction.wsdl');
     $parts = explode('.', basename($_SERVER['SCRIPT_NAME']));
     $name = $parts[0];
     $wsdl = '<?xml version="1.0"?>' . '<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="' . $scriptUri . '" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" name="' . $name . '" targetNamespace="' . $scriptUri . '">' . '<types>' . '<xsd:schema targetNamespace="' . $scriptUri . '">' . '<xsd:element name="Zend_Soap_AutoDiscover_TestFunc"><xsd:complexType><xsd:sequence><xsd:element name="who" type="xsd:string"/></xsd:sequence></xsd:complexType></xsd:element>' . '<xsd:element name="Zend_Soap_AutoDiscover_TestFuncResponse"><xsd:complexType><xsd:sequence><xsd:element name="Zend_Soap_AutoDiscover_TestFuncResult" type="xsd:string"/></xsd:sequence></xsd:complexType></xsd:element>' . '</xsd:schema>' . '</types>' . '<portType name="' . $name . 'Port">' . '<operation name="Zend_Soap_AutoDiscover_TestFunc"><documentation>Test Function</documentation><input message="tns:Zend_Soap_AutoDiscover_TestFuncIn"/><output message="tns:Zend_Soap_AutoDiscover_TestFuncOut"/></operation>' . '</portType>' . '<binding name="' . $name . 'Binding" type="tns:' . $name . 'Port">' . '<soap:binding style="document" transport="http://framework.zend.com"/>' . '<operation name="Zend_Soap_AutoDiscover_TestFunc">' . '<soap:operation soapAction="' . $scriptUri . '#Zend_Soap_AutoDiscover_TestFunc"/>' . '<input><soap:body use="literal" namespace="http://framework.zend.com"/></input>' . '<output><soap:body use="literal" namespace="http://framework.zend.com"/></output>' . '</operation>' . '</binding>' . '<service name="' . $name . 'Service">' . '<port name="' . $name . 'Port" binding="tns:' . $name . 'Binding">' . '<soap:address location="' . $scriptUri . '"/>' . '</port>' . '</service>' . '<message name="Zend_Soap_AutoDiscover_TestFuncIn"><part name="parameters" element="tns:Zend_Soap_AutoDiscover_TestFunc"/></message>' . '<message name="Zend_Soap_AutoDiscover_TestFuncOut"><part name="parameters" element="tns:Zend_Soap_AutoDiscover_TestFuncResponse"/></message>' . '</definitions>';
     $this->assertEquals($wsdl, $this->sanitizeWsdlXmlOutputForOsCompability($dom->saveXML()), "Bad WSDL generated");
     $this->assertTrue($dom->schemaValidate(dirname(__FILE__) . '/schemas/wsdl.xsd'), "WSDL Did not validate");
     unlink(dirname(__FILE__) . '/_files/addfunction.wsdl');
 }