Zend_XmlRpcに関するtips

あまりにも、日本語の(英語も)情報が少ないので色々と大変だった。
とりあえず、XmlRpcって聞いたことしか無いんだけど、使ってみてぇ!
って方の為に、簡単なTipsを。


まず、43.2. Zend_XmlRpc_Clientのサンプルについて
http://framework.zend.com/xmlrpc
は使い物にならない。
このサンプルはエラーになるので、気にしないように。


Zend_XmlRpc_Serverについて。
まず、基本的な事から。
Zend_XmlRpc_Server::setClass()で指定できるクラスは、
ステートレスなクラスのみ。
また、(ステートレスなので当然だが)コンストラクタに引数があるとダメ。
これも知らなかったのでかなり悩んだ。


また、呼び出し対象のメソッドに関しては
phpdoc形式のメソッドコメントが必須。
これは、Zend_XmlRpc_Serverの仕様で、
メソッドシグネチャ(特に型情報)をコメントから読み取ることに起因します。



ここまでしっかり作っておけば、何も問題なく登録できるはず。
ちなみに、登録が成功しても、
echo $server->handle();
で faultCode631faultStringFailed to parse request
というメッセージが出ます。
Eclipseだと保存する度に実行されるので、
エラーだと勘違いしてかなり悩んだ。