TheAviator
Новичок
EPI-XMLPC. можно ли запихнуть вовнутрь класса?
Итак, имеем реализицию EPI-XMLRPC (она стандартная дл PHP)
Ниже пример использования. Приходит XML от клиента и вызывается метод Greeting, зарегистрированный функцией xmlrpc_server_register_method($xmlrpc_server, "greeting", "greeting_func")
прикол в том, что эта регистрация работает для обычных линейных скриптов, а каким образом третий параметр (в данном случае "greeting_func") - имя вызываемой функции указывать, если внести весь код ВНУТРЬ метода КЛАССА?
Я пробовал вынести function greeting_func($method_name, $params, $app_data) в тот же класс отдельным методом и вызывать его как xmlrpc_server_register_method($xmlrpc_server, "greeting", "$this->greeting_func()"). не пашет.
Есть ли еще какие-нить идеи на этот счет? С трудом верится, что в ПХП включили библиотеку, которая не позвояент рабоать с ООП.
Итак, имеем реализицию EPI-XMLRPC (она стандартная дл PHP)
Ниже пример использования. Приходит XML от клиента и вызывается метод Greeting, зарегистрированный функцией xmlrpc_server_register_method($xmlrpc_server, "greeting", "greeting_func")
прикол в том, что эта регистрация работает для обычных линейных скриптов, а каким образом третий параметр (в данном случае "greeting_func") - имя вызываемой функции указывать, если внести весь код ВНУТРЬ метода КЛАССА?
Я пробовал вынести function greeting_func($method_name, $params, $app_data) в тот же класс отдельным методом и вызывать его как xmlrpc_server_register_method($xmlrpc_server, "greeting", "$this->greeting_func()"). не пашет.
Есть ли еще какие-нить идеи на этот счет? С трудом верится, что в ПХП включили библиотеку, которая не позвояент рабоать с ООП.
Код:
<?php
$request_xml = <<< END
<?xml version="1.0"?>
<methodCall>
<methodName>greeting</methodName>
<params>
<param>
<value><string>Dan</string></value>
</param>
</params>
</methodCall>
END;
function greeting_func($method_name, $params, $app_data) {
$name = $params[0];
return array("hello $name. How are you today?");
}
// create server
$xmlrpc_server = xmlrpc_server_create();
if($xmlrpc_server) {
// register methods
if(!xmlrpc_server_register_method($xmlrpc_server, "greeting", "greeting_func")) {
die("<h2>method registration failed.</h2>");
}
// parse xml and call method
$foo = xmlrpc_server_call_method($xmlrpc_server, $request_xml, $response, array(output_type => "xml"));
echo "<h1>XML Response</h1><xmp>$foo</xmp>\n";
// free server resources
$success = xmlrpc_server_destroy($xmlrpc_server);
}
?>