Top > xtra > php_manual > xmlrpc > xmlrpc_server_register_introspection_callback

* xmlrpc_server_register_introspection_callback [#u51015e5]
xmlrpc introspection XML を返す PHP 関数を登録します。

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


** 説明 [#o560d627]
 bool xmlrpc_server_register_introspection_callback(resource $server, string $function)

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

** 返り値 [#b91f9fb9]
関数登録成功時 TRUE、失敗時 FALSE。

** 例 [#t8f1f423]
 <?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 で行えます。

    Front page List of pages Search Recent changes Backup Referer   Help   RSS of recent changes

© 2006-2008 Internet Revolution