// Service.php
class Service {
public function Hello() {
return 'hello good';
}
public function Add($a, $b) {
return $a + $b;
}
}
需下載 SoapDiscovery.class.php:
// create_wsdl.php
include_once('Service.php');
include_once('SoapDiscovery.class.php');
$wsdl = new SoapDiscovery('Service', 'soap');
$wsdl->getWSDL(); // 產生 Service.wsdl
// server.php
$server = new SoapServer('Service.wsdl', ['soap_version' => SOAP_1_2]);
$server->setClass('Service');
$server->handle();
// client.php
ini_set('soap.wsdl_cache_enabled', 0); // 關閉快取(開發階段)
$client = new SoapClient('https://127.0.0.1/soap/server.php?wsdl');
echo $client->Add(1, 2); // 輸出 3
// 或使用 _soapCall
// echo $client->_soapCall('Add', [1, 2]);
complexTypeSoapFault 例外