Peter: Funktion der gleichen klasse an SOAP übergeben

Hallo

Ich weiß jetzt nicht ob das überhaupt geht.

function  addiere($sum1, $sum2) {  
    return $sum1 + $sum2;  
}  
  
$server = new SoapServer(NULL,  
array('uri' => "urn:xmethodsTestServer"));  
$server->addFunction('addiere');  
$server->handle();  

ich bräuchte aber folgendes und scheitere hier

class test{  
  public function execute(  
    array('uri' => "urn:xmethodsTestServer"));  
    $server->addFunction('addiere');  
    $server->handle();  
  )  
  
  private function  addiere($sum1, $sum2) {  
    return $sum1 + $sum2;  
  }  
}  
  
$test = new test();  
$test->execute();

Sprich ich starte den Soap Server erst bei bedarf und will eine Funktion der selben klasse adden. Die Funktion kann ich schwer auslagern weil die Funktion wiederum Funktionen und Klassen des Frameworks benötigt. Die banale addier funktion bräucht es natürlich nicht und ist nur für Demo da. Das ganze ist Teil eines sehr großen MVC Frameworks und sollte nur eine Erweiterung für externe SOAP abfragen über das Framework sein.

Ist das in dieser Forum überhaupt möglich. Anhand des Referenzmanual wüßte ich jetzt eigentlich nicht wie?

lg

  1. Ist das in dieser Forum überhaupt möglich. Anhand des Referenzmanual wüßte ich jetzt eigentlich nicht wie?

    Ok egal, ich seh schon das führt zu nix. Ich nehm eine anderen Ansatz und erweitere an anderer Stelle im Responsecontroller mit einer SoapExtension

    thx

  2. Hi!

    Sprich ich starte den Soap Server erst bei bedarf und will eine Funktion der selben klasse adden.

    SoapServer::addFunction() nimmt Funktionen, und meint das auch so, also keine Methoden. Üblicherweise kann man unter PHP für Callbacks den Pseudotyp callback verwenden, doch das ist hier nicht der Fall, denn ein Array zu übergeben hat eine andere Bedeutung.

    Es gibt aber noch die Methoden SoapServer::setClass() und SoapServer::setObject() zum Übergeben der RequestHandler. Die dürften dann aber nur aus Request-Handling-Methoden bestehen und nichts anderem. Allerdings geizt das Handbuch hier sehr mit Informationen.

    Lo!