-- Matthias Coy <[EMAIL PROTECTED]> wrote
(on Friday, 17 October 2008, 04:31 PM +0200):
> yes, you're right. I thought that the framework would use reflection to  
> gather that information, but, of course, then you don't know the types  
> of the params (because there is no type hinting for string or integer).

Exactly -- which is why we chose this paradigm. That, and it enforces
best practices. :)


> Luke Richards schrieb:
>> Hi Matthias,
>>
>> I think the reason get_contact isn't working is because the the Zend  
>> Server components rely on docblocks to describe the function/method  
>> parameters. I've tried the following and it seems to work.
>>
>> function version() {
>>    return 1;
>> }
>>
>> /**
>> *
>> * @param int $id
>> * @return int
>> */
>> function get_contact($id) {
>>    return 42;
>> }
>>
>> $request = new Zend_XmlRpc_Request('get_contact', array('id' => 12));
>>
>> $server = new Zend_XmlRpc_Server();
>> $server->addFunction('get_contact');
>> $server->addFunction('version');
>> echo $server->handle($request);
>>
>> Hope that helps.
>>
>> Luke R
>>
>> Matthias Coy wrote:
>>> Hi there,
>>>
>>> so this is basically my code:
>>>
>>> <?php
>>> require_once "Zend/Loader.php";
>>> Zend_Loader::registerAutoload();
>>>
>>> function version() {
>>>     return 1;
>>> }
>>>
>>> function get_contact($id) {
>>>         return 42;
>>> }
>>>
>>> $server = new Zend_XmlRpc_Server();
>>> $server->addFunction('get_contact');
>>> $server->addFunction('version');
>>> echo $server->handle();
>>>
>>>
>>> I use xmlrpc (http://xmlrpc-c.sourceforge.net/) to test the server,  
>>> basically it's
>>>
>>> xmlrpc http://localhost/zend_xmlrpc.php version
>>>
>>> which returns:
>>>
>>> Result:
>>> Integer: 1
>>>
>>> so far so good. But I'm unable to call the get_contact function,  
>>> because  it's always saying:
>>>
>>> Error: RPC failed at server.  Calling parameters do not match  
>>> signature (623)
>>>
>>> So, first thought was: maybe a broken client. So I tried the  
>>> Zend_XmlRpc_Client:
>>>
>>> <?php
>>> require_once "Zend/Loader.php";
>>> Zend_Loader::registerAutoload();
>>>
>>> $client = new Zend_XmlRpc_Client('http://localhost/zend_xmlrpc.php');
>>> echo $client->call('get_contact', array("sth"));
>>>
>>>
>>> didn't work either. So what am I doing wrong?
>>>
>>> I'm using Zend Framework Revision 11997 and PHP 5.2.6.
>>>
>>> Regards
>>>     Matthias
>>>
>

-- 
Matthew Weier O'Phinney
Software Architect       | [EMAIL PROTECTED]
Zend Framework           | http://framework.zend.com/

Reply via email to