ホームページ  >  記事  >  バックエンド開発  >  PHP で SOAP を使用するにはどうすればよいですか?

PHP で SOAP を使用するにはどうすればよいですか?

WBOY
WBOYオリジナル
2023-05-31 22:51:042186ブラウズ

現代の Web アプリケーション開発では、SOAP (Simple Object Access Protocol) を使用するのが一般的です。 SOAP は、Web 上で構造化情報を交換するための XML エンコードされたプロトコルです。この記事では、SOAP クライアントと SOAP サーバーの作成方法を含め、PHP で SOAP を使用する方法を紹介します。

1. なぜ SOAP を使用するのでしょうか?

SOAP は、インターネット上でデータを交換するためのプロトコルです。これにより、アプリケーションは XML メッセージを通じて通信できるため、クロスプラットフォーム アプリケーションの間で人気があります。 SOAP はトランスポートに HTTP または HTTPS を使用するため、インターネットを介して異なるコンピュータ間で通信できます。

SOAP は、WSDL (Web サービス記述言語) を使用してサービスを記述する記述プロトコルです。 WSDL は、インターフェイスとメソッドの詳細な説明を含む XML 形式のドキュメントです。 WSDL を使用すると、クライアントはリモート サーバーで実行できる操作とパラメータについてすぐに知ることができます。したがって、SOAP を使用して、構成可能な分散 Web サービスを作成できます。

2. SOAP を使用してクライアントを作成する

SOAP クライアントを作成する手順は次のとおりです:

  1. SOAP 拡張機能の導入: SOAP 拡張機能は PHP には追加されませんデフォルトでは。 SOAP を使用するには、SOAP 拡張機能をインストールする必要があります。これを有効にするには、PHP.ini ファイルを使用するか、拡張子を手動で追加します。
  2. SOAP クライアントの作成: SOAP クライアントの作成は非常に簡単です。 PHP が提供する SoapClient() コンストラクターを呼び出して、WSDL ファイルのアドレスを渡すだけです。 SOAP クライアントを作成するサンプル コードを次に示します。
$client = new SoapClient("http://www.example.com/webservicedoc.wsdl");
  1. インターフェイスの呼び出し: 作成した SOAP クライアント オブジェクトを使用して、リモート サービスを簡単に呼び出すことができます。インターフェイスのメソッドを呼び出して、必要なパラメータを渡すことができます。サンプル コードは次のとおりです。
$result = $client->add(2, 3);
echo $result;

上記のコード サンプルでは、​​Web サービスで add() メソッドを呼び出し、2 つのパラメーターを渡しました。サーバーはこれらのパラメータを処理し、結果を返します。この例では、サーバーは 5 を返し、これは $result 変数に格納されます。

3. SOAP を使用してサーバーを作成する

SOAP を使用してサーバーを作成するには、次の 4 つの手順を完了する必要があります:

  1. WSDL ファイルを作成します: SOAP サーバーの WSDL ファイル。 WSDL は、Web サービスのインターフェイスとメソッドを記述する XML 形式のドキュメントです。 WSDL ドキュメントには、サービス インターフェイス情報を含む WebService タグが含まれている必要があります。
  2. SOAP サービス オブジェクトの作成: SOAP サービス オブジェクトの作成は非常に簡単です。このオブジェクトのクラスは、Web サービスのインターフェイスとメソッドの実装を担当します。以下は、SOAP サービス オブジェクトを作成するコード例です。
class MyService {

    function add($a, $b) {
        return $a + $b;
    }
}

$server = new SoapServer("http://www.example.com/webservicedoc.wsdl");
$server->setClass("MyService");
$server->handle();

上の例では、MyService という名前のクラスを作成し、「add」という名前のメソッドを実装しました。このメソッドは 2 つのパラメーターを追加し、結果を返します。次に、$server という名前の SOAP サーバー オブジェクトを作成し、MyService クラスを使用して受信リクエストを処理するように指示しました。

  1. SOAP サーバーを URL にバインドする: 次に、SOAP サービスを URL にバインドする必要があります。これは、setEndpoint() メソッドを呼び出すことで実現できます。完全なバインド例を次に示します。
$uri = "http://www.example.com/webservice.php";

$server = new SoapServer("http://www.example.com/webservicedoc.wsdl");
$server->setClass("MyService");
$server->setEndpoint($uri);

$server->handle();

上の例では、URI http://www.example.com/webservice.php を SOAP サーバーにバインドします。

  1. SOAP サービスの公開: SOAP サーバーのセットアップが完了したら、それを Web に公開する必要があります。 PhP で事前定義された SoapServer() 関数または SoapClient() 関数を使用して、このタスクを実行できます。コード例は次のとおりです。
$uri = "http://www.example.com/webservice.php";

$server = new SoapServer("http://www.example.com/webservicedoc.wsdl");
$server->setClass("MyService");
$server->setEndpoint($uri);

$server->handle();

$client = new SoapClient("http://www.example.com/webservicedoc.wsdl");
$result = $client->__soapCall("add", [2, 3]);

echo $result;

上の例では、SoapServer() 関数を使用して SOAP サービスを Web に公開します。次に、$client という名前の SOAP クライアント オブジェクトを作成し、テストのためにリモート メソッドを呼び出しました。

結論

SOAP は、ネットワーク上で構造化された情報を交換できるプロトコルです。 php で SOAP を使用すると、SOAP サーバーと SOAP クライアントを作成して Web サービスを実装できます。 WSDL を使用して Web サービスのインターフェイスとメソッドを記述すると、クライアントは呼び出されるメソッドとパラメータを簡単に理解できます。 RESTful などの他の Web サービス プロトコルと比較して、SOAP にはトランザクション管理やエラー処理などの高度な機能が数多くあります。安全で強力かつ柔軟な Web サービスを構築する必要がある場合は、SOAP を使用してプログラミングします。

以上がPHP で SOAP を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。