XML-RPCといえば、PEARでやってる人も多いかと思うけど、はっきり言ってとても使いにくい。そこで、とても使い勝手のいい Incutio XML-RPC の紹介と、その使い方をちらり
ダウンロードはこちらから
http://scripts.incu...
まずは超簡単なクライアントの使い方
//ライブラリの読み込み
require_once "IXR_Library.inc.php";
//APIのアドレスをセット
$client =& new IXR_Client("http://******");
//test.getListメソッドを送信
$client->query('test.getList');
//結果を出力
print_r($client->getResponse());
たったこれだけ!で、サーバーからリストを取ってこれる。
サーバーから返ってきた XML は Incutio XML-RPC が
解析して適当な型に自動変換してくれるのでとても楽ちんです。
ちなみに、エラー処理も含めるとこんな感じ
require_once "IXR_Library.inc.php";
$client =& new IXR_Client("http://******");
if(!$client->query('test.getList')){
die('error - '.$client->getErrorCode());
}
print_r($client->getResponse());
クエリの例をいくつか
$client->query('test.add',1,2);
$client->query('test.getItem','1');
$client->query('test.addAll',array(1,2,3,4,5));
簡単でしょ?
ではクエリを受け取るサーバー側はというと、
上のクエリの例にでてる test.add というメソッドを実装すると、、
require_once "IXR_Library.inc.php";
function add($a,$b){
return $a+$b;
}
$server =& new IXR_Server(array('test.add'=>'add'));
たったこれだけ。配列を受け取る場合も、
require_once "IXR_Library.inc.php";
function addAll($list){
$result = 0;
foreach($list as $a){$result+=$a};
return $result;
}
$server =& new IXR_Server(array('test.addAll'=>'addAll'));
こんなんでいけちゃうんですよ。