利用PHP SOAP擴充實現簡單Web Services
來源:互聯網
上載者:User
WebServices能幹什嗎? WebServices 可以將應用程式轉換為網路應用程式。 通過使用 WebServices,您的應用程式可以向全世界發布資訊,或提供某項功能。 好了,關於WebServices網上資料很多,就不過多介紹了,直接進入主題。 PHP有兩個擴充類庫可以實現WebServices,一個是NuSoap,一個是php官方內建的Soap擴充,在使用上大致都差不多,就拿官方內建的Soap擴充來說吧。 在Soap編寫WebServices中主要用到了SoapClient,SoapServer,SoapFault三個類。 SoapClient:使用者訪問的類,也就是用戶端,使用WebServices的類 SoapServer:提供WebServices類,服務端 SoapFault:異常處理類 作為樣本,寫個超級簡單的的WebServices來感受下吧,直接代碼說話 1、Myself.class.php --商務邏輯類,功能實作類別 複製代碼1 <?php2 //商務邏輯類3 class Myself{4 public function info(){5 return "新浪微博:Balla_兔子,求關注啦~";6 }7 }8 ?>複製代碼很簡單,無需多餘解釋,返回一個字串。 2、soapServer.php --服務端類,提供服務 複製代碼 1 <?php 2 //服務端 3 require_once('Myself.class.php'); 4 $parameter=array( 5 'uri'=>'http://localhost/', 6 'location'=>'http://localhost/soap/soapServer.php' 7 ); 8 $soapServer=new SoapServer(null,$parameter); 9 $soapServer->setClass('Myself');10 $soapServer->handle();11 ?>複製代碼SoapServer有兩種操作模式: 上面舉例的是non-WSDL模式,在執行個體化SoapServer類時,一個參數是放WSDL檔案,在non-WSDL模式裡,可以為空白,把配置參數以數組的形式寫在第二個參數。 如果用的是WSDL模式,可以直接用WSDL檔案讓伺服器讀取配置參數,此時可以省略第二個數組參數。 配置參數有許多,上面為簡單舉例只列出2個,具體大家可以在網上查查 uri --命名空間 location --服務地址 1、WSDL模式 在WSDL模式中,構造器可以使用WSDL檔案名稱作為參數,並從WSDL中提取服務所使用的資訊。 2、non-WSDL模式 在non-WSDL模式中,使用參數來傳遞要使用的資訊,用來管理服務的行為。 在SoapServer類的眾多方法中,有三個方法比較重要。它們是SoapServer::setClass()、SoapServer::addFunction()、SoapServer::handle()。 特別注意,在handle方法之前之後均不能輸出任何參數,否則會出錯。 3、soapClient.php --用戶端類,使用服務 複製代碼 1 <?php 2 //用戶端 3 $parameter=array( 4 'uri'=>'http://localhost/', 5 'location'=>'http://localhost/soap/soapServer.php' 6 ); 7 try{ 8 $soapClient=new SoapClient(null,$parameter); 9 echo $soapClient->info();10 11 }catch(Exception $e){12 echo $e->getMessage();13 }14 15 ?>複製代碼SoapClient類可以作為給定WebServices的用戶端。