/コロンブスエッグ/ドキュメント
このドキュメントはコロンブスエッグVer0.1.2に関する、書きかけのドキュメントです。
hoge.php ce_client.php
処理を行うhoge.phpと同じ場所にce_client.phpを置きます。
index.php ce_server.php classes class1.php class2.php
エンドポイントのindex.phpと同じ場所にce_server.phpとclassesディレクトリを置きます。
classesの下に、クラスファイルを置きます。
$GLOBALS['CE_TIMEOUT']
タイムアウト秒数を指定します。
$GLOBALS['CE_PROXY']
プロキシを連想配列で指定します。
array( 'proxy'=>プロキシのアドレス, 'proxy_port'=>プロキシのポート, 'proxy_user'=>プロキシのユーザー, 'proxy_pass'=>プロキシのパスワード )
の形で定義します。
$GLOBALS['CE_PRECONF']
trueにセットすることで、ce_client.confファイルを読み込みます。
コンストラクタの引数を省略できます。
array(
"sample"=>array("http://localhost","/ColombusEgg_0_1_2/server/"),
"sample3"=>array("http://localhost","/ColombusEgg_0_1_2/server/","sample2"),
);
ce_client.confの内容はこのようになります。
$GLOBALS['CE_AUTOLOAD']
trueにセットすることで、未定義クラスは全てColombusEggのクライアントであるかのように振舞います。
XMLRPCのエラーレスポンスを返すために、例外を使います。
Exceptionのcodeは+1000されてエラーレスポンスに渡されます。クライアント側で%1000することを前提にしているので、0~999の値を使うようにしてください。
コロンブスエッグ内で閉じた例外を扱うのであれば、CEExceptionを継承することで、例外を透過的に扱うことができます。
Exceptionをextendしたクラスです。public serialize() と、static public unserialize(string $str)が定義されています。
これは標準では自分自身のserialize,unserializeをPHPネイティブな形で行います。
そのため、公開サービスには向かない内容(スタックトレース等)を含みます。
CEExceptionを継承した、独自の例外オブジェクトでは、serialize、unserialize共オーバーライドすることを強くお勧めします。
serializeされた値は、エラーレスポンスのメッセージに
CEExceptionMessage:<クラス名>:<serializeされた値>
という形で現れます。クライアントではこれを<クラス名>::unserialize(<serializeされた値>)で<クラス名>オブジェクトに戻してthrowします。
失敗した場合(<クラス名>がクライアント側で定義されていない等)場合、通常の例外として扱われ、
CEExceptionMessage:<クラス名>:<serializeされた値>
がそのままメッセージに入ります。