From: andreas dot filsinger at cargobay dot de
Operating system: independent
PHP version: 5.0.3
PHP Bug Type: SOAP related
Bug description: SOAP-Client: mapping of overloaded functions fail
Description:
------------
the WSDL of "Apache.AXIS for Java" implements sort of
function-overloading. If you have 3 published functions:
int foo (int a,b);
int foo (string a,b);
int foo (int x);
in XML this is done by extending the Function-Names by numbers:
<fooRequest ...
<fooRequest1 ...
<fooRequest2 ...
the Bug: with __getFunctions foo is formulated 3 times identical:
int foo(int $a,int $b);
int foo(int $a,int $b);
int foo(int $a,int $b);
if i call "foo" it its mapped to the first function with this name.
Reproduce code:
---------------
$user = "filsinger;Default";
$pwd = "WWO6C4vg";
$ip = "217.160.221.231:6666";
$service = "mapping/Mapping?wsdl";
$client = new SoapClient("http://$user:[EMAIL PROTECTED]/ws/services/$service",
array(
"login" => "$user",
"password" => "$pwd",
"trace" => 1,
"exceptions" => 0) );
$r = $client->__getFunctions();
foreach($r as $v)
echo $v . "<br /><br />";
Expected result:
----------------
a) Quick Patch
make a function name mapping to
getMap(...
getMap1(...
getMap2(...
so i can use getMap2(.. and be happy!
b) php 6.0.0 ;-)
true identical function names, if this is called try to fill the
function-parameters from the first function with this name, if this fails,
take the next with this name ...
take that implemetation where filling the parameter does not fail. If
there no implementation fits: create an error. If more than one parameter
fits: create an error:
Actual result:
--------------
* all the overloaded functions have the parameter set of the most
top-function.
--
Edit bug report at http://bugs.php.net/?id=31248&edit=1
--
Try a CVS snapshot (php4): http://bugs.php.net/fix.php?id=31248&r=trysnapshot4
Try a CVS snapshot (php5.0):
http://bugs.php.net/fix.php?id=31248&r=trysnapshot50
Try a CVS snapshot (php5.1):
http://bugs.php.net/fix.php?id=31248&r=trysnapshot51
Fixed in CVS: http://bugs.php.net/fix.php?id=31248&r=fixedcvs
Fixed in release: http://bugs.php.net/fix.php?id=31248&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=31248&r=needtrace
Need Reproduce Script: http://bugs.php.net/fix.php?id=31248&r=needscript
Try newer version: http://bugs.php.net/fix.php?id=31248&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=31248&r=support
Expected behavior: http://bugs.php.net/fix.php?id=31248&r=notwrong
Not enough info:
http://bugs.php.net/fix.php?id=31248&r=notenoughinfo
Submitted twice:
http://bugs.php.net/fix.php?id=31248&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=31248&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=31248&r=php3
Daylight Savings: http://bugs.php.net/fix.php?id=31248&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=31248&r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=31248&r=gnused
Floating point limitations: http://bugs.php.net/fix.php?id=31248&r=float
No Zend Extensions: http://bugs.php.net/fix.php?id=31248&r=nozend
MySQL Configuration Error: http://bugs.php.net/fix.php?id=31248&r=mysqlcfg