/コロンブスエッグ/サーバ
エンドポイントになるphpファイルを用意します。
そのファイルと同じ階層にclassesディレクトリを作ります。
classesディレクトリ内の[クラス名].phpが公開されるクラスになります。
エンドポイントのファイルに、まず
require("ce_server.php");
これを書きましょう。
公開したいクラスを引数に、CE_SERVER関数を呼び出します。
CE_SERVER( "sample", "sample2" );
こんな感じでいいでしょう。
classes下のクラスのメソッド内でthrowされた例外は、ce_server内でcatchされ、faultレスポンスとして処理されます。
ce_clientではfaultレスポンスを例外として再度投げるので、透過的に例外を処理することができます。
※サーバクラスのメソッドで明確に「失敗」を扱いたい場合は例外を使うべきです。そうすることでColombusEgg以外のクライアントもそれが「失敗」であることを認識できます。
0_1_0から単純に例外コードに$GLOBALS["XML_RPC_erruser"]を加算するのでなく、$GLOBALS["XML_RPC_erruser"]より大きい1000の倍数を加えるようになりました。1-999の範囲で例外コードを定義すれば、クライアント側で%1000することで元のコードが取り出せます。