Anscheinend ist das ein bekannter
Bug.
Da ich selber bisher nicht mit dem SoapClient gearbeitet habe, kann ich mich nur auf eine Aussage eines php.net-Users berufen:
Zitat:
|
Zitat von [2009-10-29 13:20 UTC] grzegorz dot drozd at esky dot pl __wakeup is not called before deserialization from session (if you store object in session of course). Only __set is called when setting properties. |
Demnach müsste ein Workaround mit __set möglich sein:
PHP-Code:
<?php
class Book
{
protected $_title;
protected $_author;
protected $_constructed = false;
public function __construct()
{
$this->init();
}
public function init()
{
if (false !== $this->_constructed) {
return;
}
//
//Code hier
//
$this->_constructed = true;
}
public function __set($name, $value)
{
$name = '_' . $name;
if (isset($this->$name)) {
$this->init();
$this->$name = $value;
}
//throw new Exception... etc.
}
public function __get($name)
{
$name = '_' . $name;
if (isset($this->$name)) {
return $this->$name;
}
//throw new Exception... etc.
return null;
}
}
?>
Nur eine Überlegung & ungetestet!