Edit report at https://bugs.php.net/bug.php?id=55476&edit=1

 ID:                 55476
 Updated by:         ka...@php.net
 Reported by:        donaldinou at gmail dot com
 Summary:            Method doesn't exist with magic method for soap
-Status:             Open
+Status:             Feedback
 Type:               Feature/Change Request
 Package:            *General Issues
 Operating System:   Linux
 PHP Version:        5.3.7
 Block user comment: N
 Private report:     N

 New Comment:

And the error from $r is? Please be more verbose


Previous Comments:
------------------------------------------------------------------------
[2011-08-22 12:16:29] donaldinou at gmail dot com

Description:
------------
---
>From manual page: http://www.php.net/reflectionmethod.invokeargs%23Description
---

There is differences between call_user_func_array and Reflection::invokeArgs 
method. Some magic methods are correctly called by call_user_func_array, but 
not 
in Reflection Object

Test script:
---------------
if I do this:
// Example: $clientSoap->runTransaction($arguments)

// call_user_func_array
$result = call_user_func_array( array($clientSoap, 'runTransaction'), 
$arguments );
if (!is_soap_fault($result)) {
    echo 'The method __doRequest from SoapClient object is called (This is what 
we want).';
}

// with reflection
$reflectionMethod = new ReflectionMethod('SoapClient', 'runTransaction');
try {
    $result = $reflectionMethod->invokeArgs( $clientSoap, $arguments );
    if (!is_soap_fault($result)) {
    echo 'The method __doRequest from SoapClient object is called (This is what 
we want).';
    }
} catch (ReflectionException  $r) {
    echo 'The method __doRequest is never called because the methode invokeArgs 
throw a ReflectionException.';
}

Expected result:
----------------
This should be display:
The method __doRequest from SoapClient object is called (This is what we want).
The method __doRequest from SoapClient object is called (This is what we want).

Actual result:
--------------
The method __doRequest from SoapClient object is called (This is what we want).
The method __doRequest is never called because the methode invokeArgs throw a 
ReflectionException.


------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=55476&edit=1

Reply via email to