Ergebnis 1 bis 3 von 3

Thema: Kein Konstruktor Aufruf mit SOAP-Classmap

  1. #1
    Neuer Benutzer
    Registriert seit
    22.08.2012
    Beiträge
    2
    Thanks
    0
    Thanked 0 Times in 0 Posts

    B?se Kein Konstruktor Aufruf mit SOAP-Classmap

    Hallo Forum,

    bin neu hier .

    Ich verwende Zend_Soap_Client mit Classmap um mir Objekte über einen SOAP-Webservice zu holen. Das klappt alles wunderbar.
    Nur frage ich mich warum kein Default-Konstruktor (ohne Parameter) für die Objekte aufgerufen wird die der Client zurückgibt.

    Ich habe einbisschen nachgeforscht,rumprobiert und herausgefunden dass nach dem "deserialisieren" aus SOAP __wakeup() aufgerufen wird.
    Dies geschieht jedoch nur für das oberste Objekt in der Vererbungshierarchie.

    Warum?

    Viele Grüße
    Ilja

  2. #2
    Erfahrener Benutzer Avatar von SeKrebs
    Registriert seit
    04.02.2011
    Beiträge
    1.599
    Thanks
    1
    Thanked 41 Times in 40 Posts

    Standard

    Da du keine weiteren Informationen (allen voran Code) zeigst: Kein Schimmer. Aber ich werf mal was zur Lektüre ein: PHP: Serializable - Manual
    "KingCrunchs kleine Welt" -- Blog
    The problem with rats leaving a sinking ship is that they usually do it by gnawing holes in the bottom.

  3. #3
    Neuer Benutzer
    Registriert seit
    22.08.2012
    Beiträge
    2
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Hallo SeKrebs,

    hier ist Code

    PHP-Code:
    class My_Soap_Client extends Zend_Soap_Client
    {
        protected 
    $classmap = array ('WSType' => 'MyType');



        function 
    __construct() 
        {
            
    $this->soapOptions['classmap'] = $this->classmap;
            
            
    $this->soapOptions['proxy_host'] = $this->appOptions->app->proxy->url;
            
    $this->soapOptions['proxy_port'] = $this->appOptions->app->proxy->port;
            
            
            
            
    parent::__construct($this->wsdl$this->soapOptions);
        }


         function 
    execute($myfoo,$mybar,$mybaz)
        {
            
            
            
    $params = array(
                
    'foo' => $myfoo,
                
    'bar' => $mybar,
                
    'baz' => $mybaz);
         
            
            
    $this->result $this->getWsType($params);
            return 
    $this;
            
        }



    MyType erbt von MyExtendenType und MyExtendedType erbt wiederrum von MyBaseType. __wakeup wird nur in MyBaseType aufgerufen.
    Geändert von Ilja (22.08.2012 um 16:07 Uhr)

Ähnliche Themen

  1. Problem mit WSDL und SOAP: SOAP-ERROR: Parsing WSDL
    Von AlreadyRegistered im Forum Web & Webservices
    Antworten: 6
    Letzter Beitrag: 18.04.2012, 12:01
  2. iFrame - Aufruf prüfen
    Von Komandar im Forum Konzepte & Ideen
    Antworten: 1
    Letzter Beitrag: 30.03.2010, 16:17
  3. StringToLower / StringToUpper - Konstruktor missing
    Von tsk im Forum Konzepte & Ideen
    Antworten: 2
    Letzter Beitrag: 05.12.2009, 20:12
  4. Verständnisproblem im Konstruktor/Init
    Von TimoK im Forum Einsteigerfragen
    Antworten: 7
    Letzter Beitrag: 07.08.2008, 21:27
  5. Soap?
    Von jpieper im Forum Web & Webservices
    Antworten: 3
    Letzter Beitrag: 15.03.2007, 08:21

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •