ID: 31248
User updated by: andreas dot filsinger at cargobay dot de
Reported By: andreas dot filsinger at cargobay dot de
-Status: Feedback
+Status: Open
Bug Type: SOAP related
Operating System: independent
PHP Version: 5.0.3
Assigned To: dmitry
New Comment:
26 Mar 2005
"latest" seems to be late enough. It has a timestamp from 23 Mar 2005
at 08:50. Anyway I check it again this version with no succes. I will
check again when CVS can make builds again.
Andreas Filsinger
Previous Comments:
------------------------------------------------------------------------
[2005-03-25 01:25:13] sniper@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php5-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5-win32-latest.zip
------------------------------------------------------------------------
[2004-12-22 16:03:34] andreas dot filsinger at cargobay dot de
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:$pwd@$ip/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 this bug report at http://bugs.php.net/?id=31248&edit=1