BLOGTIMES
2008/11/30

PHPでSOAPを使う

  php  soap 
このエントリーをはてなブックマークに追加

普段はSOAPで通信をするプログラムを書くときはJavaでApache AxisやAxis2を使うことが多い、というかそれしかやったことがなかったのですが、今回はPHPをサーバにするプログラムを作らなければならなかったので、いろいろと調べてみました。

PHPでSOAPを使う際のクラスとして代表的なのは下記の2つのようです。
 ・PEAR::SOAP
 ・SOAP拡張モジュール

主な違いとしては、PEAR::SOAPはPHP 4.3以降、SOAP拡張モジュールはPHP5以降の対応。PEARはPure PHPですがSOAP拡張モジュールはCでできたライブラリを呼んでいるので、パフォーマンス的には後者の方がいいかもしれません。当然のことながらSOAP拡張モジュールはコンパイル時に--enable-soapというオプションをつけておく必要あるので、PHPをリコンパイルできない場合はPEARしか選択できません。という感じで、どちらも一長一短です。

今回はWSDLはすでに存在しているので、それに対してサーバとクライアントを作るという作業をすることになったのですが、PHPではそのような使い方が一般的ではないのか、どちらもドキュメントが充実しているとは良いにくい状況で困りました。今回は配列周りなどの細かい挙動が気になったので、中身が見えるPEARの方がなにかと便利な場面が多かったような気がしますが、最終的にはどちらのライブラリでも同等のクライアント/サーバが開発できました。

とりあえず、PEAR::SOAPに関しては「PEAR::SOAPでWebサービス」が、SOAP拡張モジュールについては「SoapServerのclassmapオプションとtypemapオプションに関する覚書」という記事がとても参考になりました。


    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/2825
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン