1,生成wsdl文件
1)建立 creat_wsdl.php
<?php
include_once('Service.php');
include_once('SoapDiscovery.class.php');//此文件網絡有下載
$wsdl=new SoapDiscovery('Service','soap');//第一參數爲類名,也是生成wsdl的文件名Service.wsdl,第二個參數是服務的名字可以隨便寫
$wsdl->getWSDL();
?>
2)建立 Service.php 這裏需要一個類及方法
<?php
class Service
{
public function Hello()
{
echo 'hello good';
}
public function Add($a,$b)
{
return $a+$b;
}
}
?>
3)執行 php creat_wsdl.php 生成 Service.wsdl文件,需要注意下面是否正確
<service name="soap">
<documentation />
<port name="soapPort" binding="tns:soapBinding"><soap:address location="http://localhost:12312/Service.php(注意這裏需要修改正確的php文件)" />
</port>
</service>
4)建立 服務文件,包含方法及服務啓用
<?php
class Service
{
public function Hello()
{
echo 'hello good';
}
public function Add($a,$b)
{
return $a+$b;
}
}
$server= new SoapServer( 'Service.wsdl', array('uri' => 'http://localhost:12312') );
$server->setClass('Service');//註冊Service類的所有方法
$server->handle();//處理請求
?>
2,啓動webservice服務 php -S localhost:12312
3,編寫客戶端程序並調用 client.php
<?php
ini_set('soap.wsdl_cache_enabled','0');//關閉緩存
$soap=new SoapClient('Service.wsdl', array('uri' => 'http://localhost:12312'));
echo $soap->Add(1,2);
//echo $soap->__soapCall('Add',array(1,2))//或者這樣調用也可以
?>
附:關鍵函數說明文檔:
https://www.php.net/manual/en/soapserver.soapserver.php
https://www.php.net/manual/en/soapclient.soapclient.php