#47581 [Opn]: Calling __construct from an extended SoapClient class via variable broken

From: Date: Thu, 05 Mar 2009 22:38:55 +0000
Subject: #47581 [Opn]: Calling __construct from an extended SoapClient class via variable broken
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-134452@lists.php.net to get a copy of this message
 ID:               47581
 User updated by:  starson dot hochschild at mtginfo dot com
 Reported By:      starson dot hochschild at mtginfo dot com
 Status:           Open
 Bug Type:         SOAP related
 Operating System: Linux RedHat Enterprise V4
 PHP Version:      5.2.9
 New Comment:

public function misSoap
should be
public function __construct


Previous Comments:
------------------------------------------------------------------------

[2009-03-05 22:33:44] starson dot hochschild at mtginfo dot com

Description:
------------
I just upgraded from 5.1.6 to 5.2.9.

Calling __construct from an extended SoapClient class via variable used
to work but this is no longer the case.  Somehow it gets picked up by
__call now.
Calling __construct from an extended SoapClient class explicitly still
works.
Calling SoapClient from an extended SoapClient class via variable still
works.  I did not include an example for this, though.

This is definitely not a show-stopper but it would be nice to have
consistency.

I haven't noticed this with any other classes, but then again using a
variable to call __construct isn't exactly common.


Reproduce code:
---------------
<?php
class SoapClientExplicit extends SoapClient {
	public function misSoap($wsdl, $options = array()) {
		parent::__construct($wsdl, $options);
	}
}
class SoapClientVariable extends SoapClient {
	public function misSoap($wsdl, $options = array()) {
		$function = __FUNCTION__;
		parent::$function($wsdl, $options);
	}
}
echo __LINE__."\n";
$sce = new SoapClientExplicit('http://example.com/ns/func?wsdl');
echo __LINE__."\n";
$scv = new SoapClientVariable('http://example.com/ns/func?wsdl');
echo __LINE__."\n";
?>


Expected result:
----------------
13
15
17


Actual result:
--------------
13
15

Fatal error: Uncaught SoapFault exception: [Client] Error finding "uri"
property in /path/to/script.php:10
Stack trace:
#0 [internal function]: SoapClient->__call('__construct', Array)
#1 /path/to/script.php(10):
SoapClient->__construct('http://example...',
Array)
#2 /path/to/script.php(16):
SoapClientVariable->__construct('http://example...', Array)
#3 {main}
  thrown in /path/to/script.php on line 10



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


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



Thread (4 messages)

« previous php.bugs (#134452) next »