PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   Kommunikation zwischen zwei Umgebungen (http://www.selfphp.de/forum/showthread.php?t=25492)

JPD41 26.01.2015 14:34:54

Kommunikation zwischen zwei Umgebungen
 
Hallo zusammen,

ich schreibe gerade an einem Konzept zur PHP Migration. Teil dieses Konzepts ist es, dass ich die PHP Anwendung in Komponenten unterteile und dann jede Komponente einzeln in die neue Umgebung übertrage. Während einige Komponenten in der alten Umgebung sind und einige in der neuen, soll die Anwendung weiter zu verwenden sein.

Mein Problem ist, wie ich es hinbekomme, dass die Komponenten in den unterschiedlichen Umgebungen miteinander kommunizieren können.

Bisher bin ich so weit, dass die Komponente in der einen Umgebung ein selbstgeschriebenes Gateway aufruft (in der gleichen Umgebung), welches mit header('Location: blabla'); dann ein Gateway in der anderen Umgebung aufruft und dieses Gateway dann alles in dieser Umgebung erledigt.

Das Problem dabei ist, dass ich nun nicht mehr an die Stelle zurückkomme, wo ich das erste Gateway aufgerufen habe (wegen header('Location: blabla');). Also bräuchte ich 'ne Alternative für header('Location: blabla'); oder eine ganz andere Möglichkeit, das alles zu realisieren.

Danke schon mal für Tipps

JPD41 26.01.2015 14:51:51

AW: Kommunikation zwischen zwei Umgebungen
 
Hier noch mal meine Skripte

Neue Umgebung:
PHP-Code:

<?php
require_once ('gatewayneu.php');
$wert=Methodeneu($wert);

Gateway neue Umgebung (gatewayneu.php):
PHP-Code:

<?php
function Methodeneu($wert)
{
header('Location: http://www.alteumgebung/gatewayalt.php?wert='.$wert);
return 
$wert;
}

Gateway alte Umgebung:
PHP-Code:

<?php
require_once ('alt.php');
$wert=$_REQUEST['wert'];
$wert=Methodealt($wert);

Alte Umgebung (alt.php):
PHP-Code:

function Methodealt($wert)
{
....
return 
$wert;



JPD41 27.01.2015 18:45:09

AW: Kommunikation zwischen zwei Umgebungen
 
so ich bin in zwischen weiter gekommen und habe das ganze peer Webservice gelöst. Das Problem was ich jetzt habe ist das ich nicht genau weiß welche Adresse ich da rein schreiben muss.

Die Gateway sehen jetzt so aus:

Gateway neue Umgebung (gatewayneu.php):

PHP-Code:

<?php
    
require_once ('lib/nusoap.php');

function 
Methodeneu($wert)
{    
    
$param = array( 'wert' => $wert);
    
    
$client = new soapclient('http://www.kropp.eu/gateway2.php');

    
$response $client->call('hello',$param);

    return 
$response['wert'];
}

Gateway alte Umgebung (gateway2.php):
PHP-Code:

<?php
require_once ('alt.php');
require_once (
'lib/nusoap.php');


//using soap_server to create server object
$server = new soap_server;

//register a function that works on server
$server->register('hello');

// create the function
function hello($wert)
{
    
$result = array('wert'=>Methodealt($wert););
    return 
$result;
}

// create HTTP listener
$server->service($HTTP_RAW_POST_DATA);

exit();

Die Fehlermeldung die ich bekomme sieht so aus:

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://www.kropp.eu/gateway2.php' : failed to load external entity "http://www.kropp.eu/gateway2.php" in C:\xampp\htdocs\testen\gateway.php:8 Stack trace: #0 C:\xampp\htdocs\testen\gateway.php(: SoapClient->SoapClient('http://www.krop...') #1 C:\xampp\htdocs\testen\testen.php(7): Methodeneu('TEST1') #2 {main} thrown in C:\xampp\htdocs\testen\gateway.php on line 8

DokuLeseHemmung 27.01.2015 20:08:51

AW: Kommunikation zwischen zwei Umgebungen
 
nusoap ist meines Wissens nach hoffnungslos veraltet!

PHP5 hat eigene, schon eingebaute, Soap Klassen.

Ein Seitenblick auf den \Zend\Soap\Server ist empfehlenswert.


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:29:20 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.