- blogs:
- cles::blog

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が必要です→https://blog.cles.jp/item/2825
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
- crontab -r とやってしまった... (2)
- MPC-HC で連続再生を行う(解... (1)
- Jawbone Companion (beta) (1)
- GPS ロガーを自作 (1)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(112932)
3 . 年次の人間ドックへ(112360)
4 . 2023 年分の確定申告完了!(1つめ)(111929)
5 . 三菱鉛筆がラミーを買収(111803)