ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP チュートリアルでの Web サービス インターフェイスの作成と呼び出しの例
この記事では主に、Webサービスの基礎知識、Webサービスサーバーの例、Webサービスクライアントの例など、PHPでのWebサービスインターフェースの作成と呼び出しの例を紹介します。
開発者として、Web サービス インターフェイスを作成したり、他の人の Web サービス インターフェイスを呼び出したりしたい場合は、まず Web サービスとは何かを理解する必要があります。簡単に言うと、WebService は、いくつかのサイトで公開されているサービス、または自分で開発したサービス、つまりメソッド名を指定してリクエストを行うものです。サイトはリクエストを受け取り、渡されたパラメータに基づいて処理を実行し、プログラムは XML データを解析して表示するか、その他の操作を実行します。
Web サービスを作成するには、基本的な Web サービス プラットフォームは XML + HTTP であること、さらに Web サービス プラットフォームの要素である SOAP (Simple Object Access Protocol)、UDDI (Universal description、Discovery and Integration)、WSDL を理解する必要があります。 (Web サービス記述言語); あらゆる Web サービスにはクライアントとサーバーが含まれます。例を使用して、PHP を使用して他のユーザーが呼び出すための Web サービス インターフェイスを作成する方法を説明しましょう:
まず .wsdl ファイルを作成する必要がありますが、このファイルを PHP で作成する方法です。これを実現するには 2 つの方法があり、1 つは zend Studio ツールを使用して直接生成する方法で、もう 1 つは PHP を使用して SoapDiscovery.class.php に基づいて wsdl ファイルを自動的に生成する方法です。どちらを選択するかは状況に応じて異なります。私は通常、この比較を高速に使用します。クラスを使用して wsdl ファイルを生成する方法を書き留めてみましょう。まず、インターネットからクラス ファイルをダウンロードし、クラス ファイルをインポートした後、次のコードを見てください。
creat_wsdl.phpコードをコピーします。コードは次のとおりです:
include_once('Service.php');
include_once('SoapDiscovery.class.php');
$wsdl=new SoapDiscovery('Service','soap');//最初のパラメータはクラス名で、生成された wsdl Service.wsdl のファイル名でもあり、2 番目のパラメータはサービスの名前です。気軽に書けます
$wsdl->getWSDL();
?>
このように、creat_wsdl.phpファイルを実行することでwsdlファイルを生成することができます。すごくシンプルじゃないですか
Web サービスは実装クラスにバインドする必要があります。言い換えれば、他の人によって呼び出される wsdl ファイルの実際の機能は、クラスにメソッドを実装することです。次のコードはサーバー クラス ファイルです。
Service.php
コードをコピーします。コードは次のとおりです:
クラスサービス
{
パブリック関数 Hello()
{
「こんにちは」をエコーします;
}
パブリック関数Add($a,$b)
{
$a+$b を返す;
}
}
$server=SoapServer('Service.php',array('soap_version'=>soap_1_2));
$server->setClass('Service');//Serviceクラスのメソッドをすべて登録します
$server->handle();//リクエストの処理
?>
サーバーファイルとwsdlファイルを作成した後、クライアントからそれらを呼び出す必要があります。クライアント呼び出しコードを参照してください:
client.php
コードをコピーします。コードは次のとおりです:
ini_set('soap.wsdl_cache_enabled','0');//キャッシュをオフにする
$soap=new SoapClient('http://127.0.0.1/soap/Service.php?wsdl');
echo $soap->Add(1,2);
//echo $soap->_soapCall('Add',array(1,2))//または次のように呼び出すこともできます
?>
http://www.bkjia.com/PHPjc/852814.html