php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 29.11.2010, 10:17  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard Initialisieren von SoapClient Rückgabe (classmap)

Hallo,

ich stehe gerade vor dem Problem, die Rückgabe eines SOAP Requests in eigene Domain-Klassen zu konvertieren. Im Prinzip einfach, SoapClient kennt ja die classmap Option.

Nun würde ich die Objekte aber gerne mit weiteren Attributen initialisieren. Dass der Konstruktor nicht aufgerufen wird, ist mir klar, das wäre auch unpassend. Allerdings hätte ich mit __wakeup() oder __set_state() gerechnet, beides ebenfalls Fehlanzeige. Anscheinend werden die Objekte hier mit PHP interner Magie erzeugt, in die ich mich nicht einklinken kann...

Meine Frage, gibt es vielleicht doch eine Lösung oder einen brauchbaren Workaround oder bin ich gezwungen, das Ergebnis selber noch einmal zu durchlaufen um alles zu initialisieren?
fab ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 10.12.2010, 16:36  
Neuer Benutzer
 
Registriert seit: 09.12.2010
Beiträge: 14
PHP-Kenntnisse:
Fortgeschritten
Breyndot-Echse befindet sich auf einem aufstrebenden Ast
Standard

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!
Breyndot-Echse ist offline   Mit Zitat antworten
Alt 10.12.2010, 21:18  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Danke, das klingt nach einem interessanten Ansatz, ich werde damit mal etwas experimentieren und an dieser Stelle berichten!
fab ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP5 und Variablen initialisieren kojak2008 PHP Tipps 2010 9 17.08.2010 14:33
Rückgabe von cURL ACiD PHP Tipps 2010 2 15.04.2010 15:29
SoapClient howto handle WSDL not found! metashock PHP-Fortgeschrittene 4 07.10.2009 15:22

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php soap classmap, php soap client classmap, soapclient classmap, php soapclient classmap, php classmap, soap classmap, soap php classmap, classmap, php soap_client classmap, soap rückgabewerte, php soapclient class map, soap classmap php.net, php soap clasmap, soap request classmap, php soap axis2 classmap, soap php attributes classmap, php __get classmap, php soap client return class, php soapclient request classmap, soapclient initialisieren

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:16 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum