PHP5 および PEAR/Cache_Lite のおかげで、XMLRPC「キャッシュつきクライアント」 のリクエストを簡単に XML_RPC2 で扱えるようになりました。本当に簡単に使用可能です。
まず、'XML/RPC2/CachedClient.php' をインクルードします (これだけです)。
require_once 'XML/RPC2/CachedClient.php'; |
次に、オプションの連想配列を指定して XML_RPC2 を設定 (プレフィックス、 プロキシ、手動でのバックエンドの選択など...) します。
$options = array(
'prefix' => 'package.',
'cacheOptions' => array(
'cacheDir' => '/tmp/',
'lifetime' => 3600
)
); |
三番目に、サーバの URL とオプションの配列を指定して XML_RPC2_CachedClient オブジェクトを作成します。
$client = XML_RPC2_CachedClient::create('http://pear.php.net/xmlrpc.php', $options); |
そして、サーバのメソッドをコールしてリクエストを送信します。 これは、$client オブジェクトのローカルメソッドをコールすることで行います。
$result = $client->info('XML_RPC2'); |
もちろん、サーバのエラーを捕捉するにはこれ以外に数行追加する必要があります。 たとえばこのようになります。
try {
$result = $client->info('XML_RPC2');
print_r($result);
} catch (XML_RPC2_FaultException $e) {
// XMLRPC サーバが XMLRPC のエラーを返しました
die('Exception #' . $e->getFaultCode() . ' : ' . $e->getFaultString());
} catch (Exception $e) {
// その他のエラー (HTTP あるいはネットワークの問題など...)
die('Exception : ' . $e->getMessage());
} |
この配列は任意で指定するものですが非常に有用です。 以下のキーが使用可能です。
表 67-1オプションで使用できるキー
| オプション | データ型 | デフォルト値 | 説明 |
|---|---|---|---|
| [...] | [...] | [...] | オプションについては "キャッシュを使用しないクライアント側" を参照ください |
| cacheOptions | array | array() | 次の表で詳細を説明します |
表 67-2CacheOptions で使用できるキー
| オプション | データ型 | デフォルト値 | 説明 |
|---|---|---|---|
| [...] | [...] | [...] | "Cache_Lite コンストラクタ" で、これ以外のオプションを参照ください |
| defaultCacheGroup | string | '' | デフォルトのキャッシュグループの名前 |
| cachedMethods | array | array() | キャッシュされるメソッド名の配列 (cacheByDefault が false の場合) |
| notCachedMethods | array | array() | キャッシュされないメソッド名の配列 (cacheByDefault が true の場合) |
| cacheByDefault | boolean | TRUE | true の場合はデフォルトでキャッシュが "on" になり、 それ以外の場合は cachedMethods で指定したメソッドしかキャッシュされません |
XML_RPC2_CachedClient オブジェクトを作成するのは簡単です。次の構文を使用します。
// $XMLRPCServerURL は文字列 : たとえば 'http://pear.php.net/xmlrpc.php' // $options はオプションの配列 : 詳細は先ほどの節を参照ください $client = XML_RPC2_CachedClient::create($XMLRPCServerURL, $options); |