キャッシュつきのクライアント

キャッシュつきのクライアント –

XML_RPC2 の「キャッシュつきクライアント」の使用法

PHP5 および PEAR/Cache_Lite のおかげで、XMLRPC「キャッシュつきクライアント」 のリクエストを簡単に XML_RPC2 で扱えるようになりました。本当に簡単に使用可能です。

まず、'XML/RPC2/CachedClient.php' をインクルードします (これだけです)。

<?php
require_once 'XML/RPC2/CachedClient.php';
?>

次に、オプションの連想配列を指定して XML_RPC2 を設定 (プレフィックス、 プロキシ、手動でのバックエンドの選択など...) します。

<?php
$options 
= array(
    
'prefix' => 'package.',
    
'cacheOptions' => array(
        
'cacheDir' => '/tmp/',
        
'lifetime' => 3600
    
)
);
?>

三番目に、サーバの URL とオプションの配列を指定して XML_RPC2_CachedClient オブジェクトを作成します。

<?php
$client 
XML_RPC2_CachedClient::create('http://pear.php.net/xmlrpc.php'$options);
?>

そして、サーバのメソッドをコールしてリクエストを送信します。 これは、$client オブジェクトのローカルメソッドをコールすることで行います。

<?php
$result 
$client->info('XML_RPC2');
?>

この一行で、まず XMLRPC クライアントの package.info() (プレフィックス + メソッド名) メソッドへの引数 (文字列 'XML_RPC2') つきのリクエストをエンコードします。 そしてそのリクエストを HTTP でサーバに送信し、 戻されたレスポンスを PHP のネイティブ型にデコードします。 これだけのことが、たったの一行でできるのです! さらに、指定した時間内は結果がファイルにキャッシュされます。 次回のコールの際には HTTP リクエストが発生せず、非常に高速になります。

もちろん、サーバのエラーを捕捉するにはこれ以外に数行追加する必要があります。 たとえばこのようになります。

<?php
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());
}
?>

オプションの配列

この配列は任意で指定するものですが非常に有用です。 以下のキーが使用可能です。

オプションで使用できるキー
オプション データ型 デフォルト値 説明
[...] [...] [...] オプションについては "キャッシュを使用しないクライアント側" を参照ください
cacheOptions array array() 次の表で詳細を説明します

"CacheOptions" エントリは連想配列で、以下のキーが使用できます。

CacheOptions で使用できるキー
オプション データ型 デフォルト値 説明
[...] [...] [...] "Cache_Lite コンストラクタ" で、これ以外のオプションを参照ください
defaultCacheGroup string '' デフォルトのキャッシュグループの名前
cachedMethods array array() キャッシュされるメソッド名の配列 (cacheByDefault が false の場合)
notCachedMethods array array() キャッシュされないメソッド名の配列 (cacheByDefault が true の場合)
cacheByDefault boolean TRUE true の場合はデフォルトでキャッシュが "on" になり、 それ以外の場合は cachedMethods で指定したメソッドしかキャッシュされません

XML_RPC2_CachedClient オブジェクトの作成

XML_RPC2_CachedClient オブジェクトを作成するのは簡単です。次の構文を使用します。

<?php
// $XMLRPCServerURL は文字列 : たとえば 'http://pear.php.net/xmlrpc.php'
// $options はオプションの配列 : 詳細は先ほどの節を参照ください
$client XML_RPC2_CachedClient::create($XMLRPCServerURL$options);
?>

XML_RPC2_CachedClient のコンストラクタを直接コールしないでください。 静的メソッド call() をコールします。

XMLRPC がエクスポートするメソッドのコール

「キャッシュしないクライアント側」のドキュメントを参照ください。 なにも違う点はありません。

キャッシュ処理は完全に埋め込まれており、自動的に行われます。 キャッシュが使用可能な場合は、結果はキャッシュから取得され、HTTP リクエストは送信されません。そのコールに対応する (同じメソッド名と引数の) キャッシュが存在しない場合は、標準の XMLRPC 通信が使用されます (その結果はキャッシュファイルに保存され、次回に使用されます)。

サーバ (Previous) キャッシュつきのサーバ (Next)
Last updated: Wed, 23 Jul 2014 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.