PHP 7.0.0 Beta 2 Released


(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_register_methodRegistra una funzione PHP per il metodo di risorsa abbinato a method_name


bool xmlrpc_server_register_method ( resource $server , string $method_name , string $function )

Questa funzione è SPERIMENTALE. Ovvero, il comportamento di questa funzione, il nome di questa funzione, in definitiva tutto ciò che è documentato qui può cambiare nei futuri rilasci del PHP senza preavviso. Siete avvisati, l'uso di questa funzione è a vostro rischio.


Questa funzione, al momento non è documentata; è disponibile soltanto la lista degli argomenti.

add a note add a note

User Contributed Notes 6 notes

12 years ago
Here is an example how to register a class methode:

xml_rpc_server_register_methode($xmlrpc_server, "foo", array(&$bar, "foo_func"));

where $bar is the instance of your class and foo_func a methode of this class. Don't forget the '&'!

hope this may be useful...

nyvsld at gmail dot com
9 years ago
prototype of registered function:

function method_impl(string $method_name, array $params, array $user_data);

    the public method name, known by calling client
    parameters specified by calling client
    any local data, passed by `xmlrpc_server_call_method'
giunta dot gaetano at sea-aeroportimilano dot it
8 years ago
To have an xmlrpc fault response programatically generated by the server, the php function registered as method handler must return an array containing a FaultCode and a FaultString members.

function $myfunc($methodname, $vals, $extra_data)
return array('faultCode' => 666, 'faultString' => 'DOH!');
dante at lorenso dot com
9 years ago
To register a callback to a 'static' function within the same class, consider a syntax like the following:
$callback = array (__CLASS__, "my_function_name");
xmlrpc_server_register_method($xmlrpc_server, "my_function", $callback);
Doing it this way makes it easier to rename your class later.
eiriks at hollowmatrix dot com
10 years ago
Remember that you can't do like Chrigu and Nate said if you want to add methods from a static class (Hence you can't create any instances of it).
A workaround is to create lambda functions calling the

// Our static handler class
static class MyHandler
    public function getPrice($item)
        $prices = array("apple" => 4, "orange" => 5);
        return $prices[$item];
    public function buy($item, $number)
        $price = self::getPrice($item) * $number;
        return $price;

// Use reflection to get method names and parameters
$mirror = new ReflectionClass("MyHandler");
foreach ($mirror->getMethods() as $method)
    // Create new "lambda" function for each method
    // Generate argument list
    $args = array();
    foreach ($method->getParameters() as $param)
        $args[] = '$'.$param->getName();
    $args = implode(',', $args);
    // Generate code
    $methodname = $method->getName();
    $code = "return {$real_class}::{$methodname}({$args});";
    // Create function, retrieve function name
    $function_name = create_function($args, $code);

    // Register the function
    xmlrpc_server_register_method($myserver, $methodname, $function_name);
Nate Parsons
12 years ago
In case its not completely obvious what Chrigu meant,

You can register a method inside your class by doing the following:

xml_rpc_server_register_methode($xmlrpc_server, "myClientCall", array(&$this, "handleClientCallFunc"));

where $this == the magic class $this. =)
To Top