1

phpでXML-RPCを使う場合のライブラリの選択

会社で調べる機会があったのでここにも載せておきます。

OpenPNE2系で使用してるライブラリ

pear::XML_RPCを利用している。
XML_RPCはPHP4系に対応しているのに対し、
XML_RPC2はPHP5に限定されているためPHP4系で動作するOpenPNE2系ではXML_RPCを利用している。

=== その他のライブラリの検討 ===
PHPの拡張モジュールで XML_RPCを扱う事もできるがこちらはPHP側で有効になっていない場合動作しない。
この関数群と互換性のあるライブラリとしてphpxmlrpcがあるが、
こちらは日本語が文字化けする問題があり実用的ではない。

どちらを使用するべきか

OpenPNE3系はPHP5系のみで動作するのでXML_RPC2の利用も検討できる。
XML_RPC2はサーバからのレスポンスをキャッシュする事が容易にできるようなっている。
ただ、この利点に関しては今回の場合レスポンスされる内容は毎回変わるため恩恵はないと思われる。
そのため機能面に関してはどちらを利用しても問題ない。

実装面では、
XML_RPCはいままで使用した実績があるため、実装の敷居は低い。
ただ、OpenPNE3系はクラスで組まれているので今回の場合もメソッドはできればクラスメソッドにしたい。
その点ではXML_RPCは関数で記述されていたのに大してXML_RPC2はクラスで記述されているので相性は良いと思われる。

XML_RPCの場合でもクラスメソッドで実装することはできるが、一般的には関数で実装するようなので問題が起こる可能性がある。
XML_RPC2ではメソッドをクラスメソッドで実装する機構になっている
ため実装は容易に行なえると思われる。

サーバ側の実装をする場合、
XML_RPCの場合レスポンスコードへの変換が複雑になり面倒である。
XML_RPC2の場合はどうなのかというと公式ページのサンプルを見る限り・・・まだ書かれていない。
参考にできるサイトを探してみたがクライアント側の実装例は見つかるが、
サーバ側の実装例が見つからないため、学習コストは高そうである。

速度面では、
こちらのサイトを見る限り、XML_RPCの方が若干速いようである。

Doctrine化粗方完了

ふぅ、ようやく置換作業が終わった。

まだRSSが機能していないけども一応ブログとして機能しているので本番環境に適応しました。

修正しました。

初回のみrssを読みにきたときにファイルを生成するようにして、ブログが更新されたら

ファイルを削除するような実装にした。

サイトのdb操作ライブラリをDoctrineに移行しよう

DB操作にADOdb使ってるんだけどORMのDoctrineに移行するためにソースの全面変更中です。

理由はDoctrineを仕事で使っているっていうのと、ORMによってオブジェクト指向で記述できる点。

 

今は全部データを取ってくるたびに同じSQLを書いていてラップしてない状態なんで、

もともとその機構はあとで作ればいいかな、

と思ってたんだけどDoctrineを使うことでその問題をカバーできるから一石二鳥かなと。

1

フィード

キーワード検索

最近の記事

最近のコメント

最近のトラックバック

カテゴリ

アーカイブ

ランキング