Top > xtra > php_manual > xmlrpc > xmlrpc_server_register_introspection_callback

xmlrpc_server_register_introspection_callback

xmlrpc introspection XML を返す PHP 関数を登録します。

xmlrpc introspection XML については http://xmlrpc-epi.sourceforge.net/specs/rfc.system.describeMethods.php の「Describing the Method(s)」を 参照してください。登録した関数が返すイントロスペクション情報は、既にある情報を上書きします。

説明

bool xmlrpc_server_register_introspection_callback(resource $server, string $function)

パラメータ

server
xmlrpc サーバを指し示す PHP リソース型。
function
callback 関数の関数名。callback 関数は次の形になり、introspection XML を文字列で返します。
string callback_function(mixed $user_data)

返り値

関数登録成功時 TRUE、失敗時 FALSE。

<?php
# php://input で HTTP POST で渡される XML ドキュメントを取り込みます。
$xml = file_get_contents('php://input');

# xmlrpc サーバに登録する callback 関数は 3 つの引数を取ります。
function sample_noop($methodName, $args, $user_data){
}

# introspection xml を生成して返します。
function sample_introspection($user_data){
 return '<?xml version="1.0" ?>
<introspection version="1.0">
  <methodList>
    <methodDescription name="sample.noop">
    <author>Hiroaki Kawai</author>
    <purpose>no-operation server that might be useful for debugging.</purpose>
    <version>0.1</version>
    <signatures>
      <signature>
      </signature>
    </signatures>
    </methodDescription>
  </methodList>
</introspection>';
}

$server = xmlrpc_server_create();
xmlrpc_server_register_method($server, 'sample.noop', 'sample_noop');
xmlrpc_server_register_introspection_callback($server, 'sample_introspection');
$response = xmlrpc_server_call_method($server, $xml, null, 
 array('escaping'=>'markup','encoding'=>'UTF-8'));
header('Content-type: text/xml');
echo $response;
xmlrpc_server_destroy($server);
?>

xmlrpc_server_add_introspection_data を使うと、 PHP 配列の形式でイントロスペクション情報が定義できます。 introspection xml から PHP 配列の形式への変換は xmlrpc_parse_method_descriptions で行えます。


Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup Referer   Help   RSS of recent changes
Last-modified: (1817d)

© 2006-2008 Internet Revolution