/コロンブスエッグ/ドキュメント コロンブスエッグ/ドキュメント - A.K.I. Home

A.K.I. HomeATOM:A.K.I. Home

コロンブスエッグ / ドキュメント

はじめに bookmark

このドキュメントはコロンブスエッグVer0.1.2に関する、書きかけのドキュメントです。

基本的な配置 bookmark

クライアント bookmark

hoge.php
ce_client.php

処理を行うhoge.phpと同じ場所にce_client.phpを置きます。

サーバ bookmark

index.php
ce_server.php
classes
 class1.php
 class2.php

エンドポイントのindex.phpと同じ場所にce_server.phpとclassesディレクトリを置きます。
classesの下に、クラスファイルを置きます。

クライアント bookmark

動作設定 bookmark

$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のクライアントであるかのように振舞います。

サーバ bookmark

エンドポイントファイル bookmark

クラスファイル bookmark

例外 bookmark

XMLRPCのエラーレスポンスを返すために、例外を使います。
Exceptionのcodeは+1000されてエラーレスポンスに渡されます。クライアント側で%1000することを前提にしているので、0~999の値を使うようにしてください。
コロンブスエッグ内で閉じた例外を扱うのであれば、CEExceptionを継承することで、例外を透過的に扱うことができます。

CEException bookmark

Exceptionをextendしたクラスです。public serialize() と、static public unserialize(string $str)が定義されています。
これは標準では自分自身のserialize,unserializeをPHPネイティブな形で行います。
そのため、公開サービスには向かない内容(スタックトレース等)を含みます。
CEExceptionを継承した、独自の例外オブジェクトでは、serialize、unserialize共オーバーライドすることを強くお勧めします。
serializeされた値は、エラーレスポンスのメッセージに
CEExceptionMessage:<クラス名>:<serializeされた値>
という形で現れます。クライアントではこれを<クラス名>::unserialize(<serializeされた値>)で<クラス名>オブジェクトに戻してthrowします。
失敗した場合(<クラス名>がクライアント側で定義されていない等)場合、通常の例外として扱われ、
CEExceptionMessage:<クラス名>:<serializeされた値>
がそのままメッセージに入ります。

 
TB:http://www.tetsuneko.net/aki/sitedev2/tb/9004ccccd8de8257b1f8f04add6eb15e
(c)A.K.I. 2007