|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2010-04-05 11:37 UTC] jstein at image dot dk
Description: ------------ In http://svn.php.net/viewvc/php/php-src/trunk/ext/soap/soap.c?revision=296820&view=markup at line 1322 "setPersistence" checks for "service->type == SOAP_CLASS", but if you want to set an object with "setObject" instead of a class, the service type will be SOAP_OBJECT. I guess it should be possible to use persistence with setObject (that's what the documentation says: http://www.php.net/manual/en/soapserver.setpersistence.php ). PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Oct 25 22:00:01 2025 UTC |
SOAP server: <?php class Test{ private $var; function __construct(){ $this->var=0; } function addOne(){ $this->var++; return $this->getVar(); } } $data=$HTTP_RAW_POST_DATA; $one=new Test(); session_start(); $server=new SoapServer(null,array('soap_version'=>SOAP_1_2,'uri'=>"http://jsp-hotel.dk/test")); //$server->setObject($one); // Does not work $server->setClass('Test'); // This does work $server->setPersistence(SOAP_PERSISTENCE_SESSION); $server->handle($data); ?> SOAP Client: <?php $client = new SoapClient(null, array('location' => "http://jsp-hotel.dk/test/soappersistence-setClass.php", 'uri' => "http://jsp-hotel.dk/test", 'trace' => true)); try { echo $client->addOne(); echo '<hr>'; echo $client->addOne(); } catch (Exception $e) { echo $e . '<hr>'; echo $client->__getLastRequest() . '<hr>' . $client->__getLastRequestHeaders() . '<hr>' . $client->__getLastResponse() . '<hr>' . $client->__getLastResponseHeaders(); } ?> The client prints 1 2 (as expected) when server uses "setClass", but 1 1 when server uses "setObject".