Recently I needed to use the xml-rpc lib with symfony. I created a function to make cache of xml-rpc requests using the symfony's sfFileCache and it work good.
I'm using the xml-rpc library that you can get on http://phpxmlrpc.sourceforge.net/
public function callCache( $methodName, $params ){
// generated a key to cache file
$key = $methodName."_".implode('_', $params->getval() );
$cache = new sfFileCache( array( 'cache_dir' => sfConfig::get('sf_cache_dir')."/xmlrpc/" ) );
// check if already exist the cache file
if( ! $cache->has( $key ) ){
//init xml-rpc message/
$f = new xmlrpcmsg($methodName, $params);
$f->addParam($params);
$c = new xmlrpc_client("/xml-rpc", $this->host, 443, 'https' );
$c->setCredentials($this->username, $this->password);
$c->setDebug( $this->debug );
$response = $c->send($f);
$cache->set( $key , serialize( $response ), 3600);
}else{
$response = $cache->get( $key );
$response = unserialize( $response );
}
if( ! $response->value() ){
$this->erro( $response->errno, $response->faultString() );
}
$results = php_xmlrpc_decode( $response->value() );
$this->rows = count($results);
$this->data = $results;
}