Steuerung eines SOAP-Services anhand des "Aufrufers"

Arndtinho

Erfahrenes Mitglied
Hallo,

es gibt einen Webservice der von extern und intern aufgerufen werden kann.
Wird dieser WS aus der internen Applikation aufgerufen, kann ein zusätzlicher "Parameter" übergeben werden.
Anhand dessen ändert sich die Verarbeitung ein wenig.
Es soll auch nur ein WSDL verwendet werden.

Vielleicht hilft folgendes ein wenig weiter:
PHP:
$wsdl = 'url_zur_wsdl.wsdl';
$options = array('trace' => 1);
$param   = array('param1' => $param1, 'param2' => $param2);

$soapClient = new SoapClient($wsdl, $options);		
$res = $soapClient->doSomthing($param);

// aus WS-Klasse soapDoSomething
public function doSomething($param)
{
   // init processing
			if ($request == 'extern') {
      // do processing for extern call
			} else {
			   // do processing for intern call
	  }
}

Ich habe im Moment keine Idee, wie ich das Lösen könnte. Ein Ansatz wäre,
dem $options einen Key mitzugeben.
PHP:
$options = array('trace' => 1, 'key' => 'intern');
Und im WSDL wird ein SOAP-Header implementiert. Aber wie kann ich dann diesen Header
verarbeiten?

Oder habt Ihr eine andere Idee?

Viele Grüße
Arndtinho
 
Zurück