Zugriff mit PHP auf einen Consolen-Host und eine Service-DLL, realisiert in C#

Hier geht es um den Schnittstellenstandard WCF (Windows Communication Foundation) Über unterschiedliche Netzwerkprotokolle (http, tcp, named pipes) können Funktionen (Operation-Contract), Daten (Data-Contract) eine angebotenen Dienstes (Service-Contract) genutzt werden. Diese Schnittstelle ist unabhängig von der genutzten Programmiersprache. Hier wird z.B. ein in C# programmierter Dienst (Host und Service-DLL) von einer PHP-Funktion genutzt. Die Quintessenz: Fremde Programme in irgendeiner Programmiersprache programmiert, können von einem anderen Programm genutzt werden, wenn die Vereinbarungen (Contracts) über die Funktionsnutzung und den Datentransfer von beiden Seiten eingehalten werden. Hier wird die frühere Verfahrensweise des Exports von Daten durch Programm 1 und den Import von Daten durch Programm 2 ersetzt.
Antworten
jue
Administrator
Beiträge: 15
Registriert: Do 7. Sep 2023, 11:52
Wohnort: Wuppertal
Kontaktdaten:

Zugriff mit PHP auf einen Consolen-Host und eine Service-DLL, realisiert in C#

Beitrag von jue »

PHP-Zugriff_auf_WCF-Dienst_Erster_Versuch.PNG

Hier der Code zum Kopieren: (falls gewünscht)

Code: Alles auswählen

<?php

/*
 *  Entwickelt von Heiko Jürgens
 *  (c) 2017, jue4you.de
 *  Webseitenprojekt wohlgeformt
 */

// Funktioniert
try {
    $svc = 'DayOfWeekService';
    $port = '8080';
    $func = 'GetDayOfWeek';
    $host = 'localhost';
    $url = 'http://' . $host . ':' . $port . '/' . $svc . '?wsdl';
    $soapClient = new SoapClient($url);

    // Aufgerufene Funktion in der ServiceLib:         public string GetDayOfWeek(string date)
    $params = array('date' => '31.08.2017');    // muss dem richtigen Parameternamen zugewiesen werden, hier: [date]
    $container = new stdClass();
    $container = $soapClient->__soapCall($func, array('parameters' => $params));

    $properties = get_object_vars($container);
    print $properties['GetDayOfWeekResult'];
    //var_dump($container);     // hierüber kann man erfahren, was zurückgegeben wird.
    
} catch (Exception $e) {
    echo 'Caught exception:', $e->getMessage(), "\n";
}




Zugegriffen wird auf folgende Funktion des Services:


Funkion_GetDayOfWeek_c#-DLL.PNG


Alle Quellen sind in dem Buch von Walter Doberenz und Thomas Gewinnus: Datenbankprogrammierung in Visual C# 2012 zu finden; Beispiel: DayOfWeekService, das alles hier in diesem Post zu erklären, würde den Rahmen sprengen. Ich empfehle die Lektüre dieses Buches.

Alternative: Download der Quellen hier:

https://onedrive.live.com/?authkey=%21A ... B46DA92110


quellcode_DayOfWeekService_Doberenz_Gewinnus.PNG
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Antworten