SoapRpcService.php – WSDL für SOAP RPC made easy

Dass man mit Entwicklungs-Umgebungen wie z.B. auch SharpDevelop (rechte Mautaste im Projekt -> "Web hinzufügen") über automatisiert erstellte sehr einfach auf SOAP zugreifen kann, werden die meisten ja wissen.
Wer PHP-Dienste via NuSOAP anbietet, dem ist bestimmt auch schon aufgefallen, dass es ziemlich umständlich ist, wenn es darum geht, eigene Datentypen/Datenstrukturen zu erzeugen.

Deshalb ich eine kleine namens "SoapService" geschrieben, die diesen erheblich vereinfacht.

Hier ein kleines , wobei ich die Objekte zur binären und Dateiübertragung hierfür einmal ausgelassen e:

< ?php
/**
  • Just an example of SoapService.php
  • @access public
  • @author Holger Schadeck
    */
    require_once ('lib/SoapService.php');
    function () {
    return 'ich bin es, dein server';
    }
    function ($iAmount = 0) {
    $aData = array ();

    $aData[] = ();
    }
    return $aData;
    }
    function Test3($iAmount = 0) {
    $aData = array ();

    $aData[] = array (
    'id' => $iCount,
    'Data' => $iCount . '.' . $iCount,
    'Item' => 'item' . $iCount,
    'Datum' => date('Y-m-d',
    time()));
    }
    return $aData;
    }
    /**
  • Create service object
    */

    /**
  • make function accesible
    */
    $oServer->publish('', null, 'string', 'Der Server spricht zu Dir');
    /**
  • create an array of integer object
    */
    $oArrayOfInt = new Array('ArrayOfInt', 'int');
    /**
  • make function accesible
    */
    $oServer->publish('', array (
    'Anzahl' => 'int'
    ), $oArrayOfInt, 'Der Server spricht öfter zu Dir');
    /**
  • create a data structure object
    */
    $oDataStruct = new Struct('DataStruct', array (
    'id' => 'int',
    'Data' => 'float',
    'Item' => 'string',
    'Datum' => 'date'
    ));
    /**
  • create an array object of the data structure object
    */
    $oArrayOfDataStruct = new Array('ArrayOfDataStruct', $oDataStruct);
    /**
  • make function Test3 accesible
    */
    $oServer->publish('Test3', array (
    'Anzahl' => 'int'
    ), $oArrayOfDataStruct, 'Der Server liefert ein Array von Datenkonstrukten');
    /**
  • start the service
    */
    $oServer->service($HTTP_RAW_POST_DATA);
    ?>

Die SoapService Klasse samt (s soapserver Klasse ist umbenannt in soap_server wegen potentiellem Konflikt mit der PHP SOAP-Erweiterung)

SoapRpcService Klasse Downloads: 6819 times
Print Friendly, PDF & Email

Related posts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*