Bug #51561 [Opn]: SoapServer with a extented class and using sessions, lost the setPersistence()

[email protected] ("marciomaianunes at hotmail dot com")
Newsgroups php.bugs
Message-ID <[email protected]>
Edit report at http://bugs.php.net/bug.php?id=51561&edit=1

 ID:               51561
 User updated by:  marciomaianunes at hotmail dot com
 Reported by:      marciomaianunes at hotmail dot com
 Summary:          SoapServer with a extented class and using sessions,
                   lost the setPersistence()
 Status:           Open
 Type:             Bug
 Package:          SOAP related
 Operating System: Linux 2.6.26
-PHP Version:      5.2.13
+PHP Version:      5.2.11

 New Comment:

Same error in PHP 5.2.6-1+lenny3


Previous Comments:
------------------------------------------------------------------------
[2010-04-15 12:50:56] marciomaianunes at hotmail dot com

Description:
------------
A SoapServer using sessions and extending some class included by require
or 
include functions, lose the persistence seted by setPersistence 
(SOAP_PERSISTENCE_SESSION)

The script below will work fine with one of 3 changes (no idea why):

- Declaring the class "Server2" in the same file as class "Server"
(Server1.php) 
and removing the require_once(Server2.php);

- Removing the "session_start();" from server.php

- If class "Server" do no extend any class, it also works.

Thanks a lot!


Test script:
---------------
## Client.php ##
<?php 
$cli = new SoapClient(null, array('location' =>
"http://localhost:81/bugTest/Server.php", 'uri' =>
"blablabla.com",'encoding' => "ISO-8859-1",'soap_version' =>
SOAP_1_2));
$cli->setValue(100);
$response = $cli->getValue();
echo "Get = ".$response;	
?>

## Server.php ##
<?php 
session_start();
require_once("Server2.php");
class Server extends Server2 {
	private $value;
	public function setValue($param) { $this->value = $param; }
	public function getValue() { return $this->value; }
}
$server = new SoapServer(null, array('uri' => "blablabla.com",'encoding'
=> "ISO-8859-1",'soap_version' => SOAP_1_2));
$server->setClass("Server");
$server->setPersistence(SOAP_PERSISTENCE_SESSION);
$server->handle();
?>

## Server2.php ##
<?php class Server2{ private $nothing; } ?>

Expected result:
----------------
Get = 100

Actual result:
--------------
Get = 


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



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=51561&edit=1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.