利用PHP SOAP擴展實現簡單Web Services

WebServices能幹什麼?php

WebServices 能夠將應用程序轉換爲網絡應用程序。html

經過使用 WebServices,您的應用程序能夠向全世界發佈信息,或提供某項功能。json

 

好了,關於WebServices網上資料不少,就不過多介紹了,直接進入主題。數組

PHP有兩個擴展類庫能夠實現WebServices,一個是NuSoap,一個是php官方自帶的Soap擴展,在使用上大體都差很少,就拿官方自帶的Soap擴展來講吧。服務器

在Soap編寫WebServices中主要用到了SoapClient,SoapServer,SoapFault三個類。網絡

SoapClient:用戶訪問的類,也就是客戶端,使用WebServices的類函數

SoapServer:提供WebServices類,服務端ui

SoapFault:異常處理類spa

 

做爲示例,寫個超級簡單的的WebServices來感覺下吧,直接代碼說話3d

 

一、Myself.class.php  --業務邏輯類,功能實現類

1 <?php
2     //業務邏輯類
3     class Myself{
4         public function info(){
5             return "新浪微博:Balla_兔子,求關注啦~";
6         }
7     }
8 ?>

很簡單,無需多餘解釋,返回一個字符串。

 

二、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  --服務地址

一、WSDL模式  在WSDL模式中,構造器可使用WSDL文件名做爲參數,並從WSDL中提取服務所使用的信息。

二、non-WSDL模式  在non-WSDL模式中,使用參數來傳遞要使用的信息,用來管理服務的行爲。

 

在SoapServer類的衆多方法中,有三個方法比較重要。它們是SoapServer::setClass()、SoapServer::addFunction()、SoapServer::handle()。 

特別注意,在handle方法以前以後均不能輸出任何參數,不然會出錯。

 

三、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的客戶端。
它有兩種操做形式:(和SoapServer的兩種模式差很少)
一、WSDL 模式

二、Non-WSDL 模式

 

以上就是利用PHP SOAP擴展實現的簡單WebServices,咱們訪問soapClient.php試試看

輕鬆搞定~

 

附:

如今大多的WebServices接口的返回值是JSON或XML,咱們能夠在內部本身定義賦值。

經常使用函數 file_get_contents、json_encode、json_decode等

這裏有篇關於json操做時該注意的事項:http://www.cnblogs.com/lichenwei/p/3888586.html

相關文章
相關標籤/搜索