php実装webserviceインスタンス

2278 ワード

この例では、phpがwebserviceを実装する方法について説明します.皆さんの参考にしてください.具体的な実現方法は以下の通りである.
まず、Webserviceとは何かを簡単に理解し、次に2つの非常に簡単な例を作ります.Webserviceはserver側とclient側から逃げられません.
ここでのテスト環境はapache 2.2.11 php5.2.10
このテストを行う前に、phpプロファイルにsoap拡張子が開いていることを確認します.

   extension=php_soap.dll; 
 

OK Webserviceを体験しましょう
server側serverSoap.php

   $soap = new SoapServer(null,array('uri'=>"http://192.168.1.179/"));//This uri is your SERVER ip. 
  
$soap->addFunction('minus_func');                                                 //Register the function
$soap->addFunction(SOAP_FUNCTIONS_ALL);
$soap->handle();
function minus_func($i, $j){
    $res = $i - $j;
    return $res;
}
//client clientSoap.php
try {
    $client = new SoapClient(null,
        array('location' =>"http://192.168.1.179/test/serverSoap.php",'uri' => "http://127.0.0.1/")
    );
    echo $client->minus_func(100,99);
} catch (SoapFault $fault){
    echo "Error: ",$fault->faultcode,", string: ",$fault->faultstring;
}

これはクライアントがサーバ側関数を呼び出す例で、classをもう一度します.
server側serverSoap.php

   $classExample = array(); 
  
$soap = new SoapServer(null,array('uri'=>"http://192.168.1.179/",'classExample'=>$classExample));
$soap->setClass('chesterClass');
$soap->handle();
class chesterClass {
    public $name = 'Chester';
    function getName() {
        return $this->name;
    }
}
//client clientSoap.php
try {
    $client = new SoapClient(null,
        array('location' =>"http://192.168.1.179/test/serverSoap.php",'uri' => "http://127.0.0.1/")
    );
    echo $client->getName();
} catch (SoapFault $fault){
    echo "Error: ",$fault->faultcode,", string: ",$fault->faultstring;
}

ここで述べたことが皆さんのPHPプログラム設計に役立つことを願っています.