php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2010

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 16.07.2010, 11:04  
Neuer Benutzer
 
Registriert seit: 15.07.2010
Beiträge: 10
PHP-Kenntnisse:
Anfänger
Tviskjola befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Scope Problem

Hallo zusammen,

ich möchte folgenden Prozess umsetzen:

1. SOAP Client A ==[SOAP Request]=> SOAP Server Method
2. SOAP Server Method ==[HTTP Redirect]=> Fremder Server
3. Fremder Server ==[HTTP Redirect]=> SOAP Server Method
4. SOAP Server Method ==[SOAP Response]=> SOAP Client A

Ein Soap-Client stellt eine Soap-Anfrage an einen Soap-Server. Dieser sammelt dann einige Daten und führt einen Redirect via HTTP an eine fremde Schnittstelle aus (...anderer Server). Die fremde Schnittstelle meldet sich dann mit einen HTTP Redirect und ein paar zusätzlichen Header- und Get-Parametern am Soap-Server zurück. Die mitgelieferten Parameter werden ausgewertet. Abhängig vom Resultat möchte ich dann ein bestimmtes Ergebniss zurück an den Aufrufenden Soap-Client kommunizieren.

Mein Problem hierbei ist der Scope.

Variante Nr.1:
Beim Http-Redirect aus der Soap-Server-Klasse zur fremdem Schnittstelle und anschliessendem zurückkehren wird eine neue Instanz der Klasse erzeugt. Ich befinde mich nicht mehr im aktuellen Scope.

Variante Nr. 2:
Ich hatte gedacht es hilft mir wenn ich die Klasse als Singleton aufbaue und damit neue Instanziierungen verhindere. Dann habe ich aber das Problem, dass ich nach der Verarbeitung nicht einfach mit return=$result an die Server-Klasse zurückgeben und damit dem Client nichts zurückschicken kann.

Das Konstrukt soll in PHP5 ohne Ajax oder andere Frameworks umgesetzt werden.

Vielleicht hat jemand von euch eine Idee wie ich das aufziehen kann. Mir fällt jedenfalls gerade nichts mehr ein.

LG,
Tviskjola
Tviskjola ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 16.07.2010, 11:56  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.990
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Das kannst Du bei HTTP vergessen, würde ich sagen. Singleton hat damit auch nicht die Bohne zu tun. Wozu der ganze Aufwand?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 16.07.2010, 12:04  
Neuer Benutzer
 
Registriert seit: 15.07.2010
Beiträge: 10
PHP-Kenntnisse:
Anfänger
Tviskjola befindet sich auf einem aufstrebenden Ast
Standard Vorgegebene Rahmenbedingungen

Zitat:
Zitat von nikosch Beitrag anzeigen
Das kannst Du bei HTTP vergessen, würde ich sagen. Singleton hat damit auch nicht die Bohne zu tun. Wozu der ganze Aufwand?
Hi,

ich würde mich auch eine andere Basis wünschen, aber es handelt sich dabei um einen PaymentProzessor der mit PayPal und ClickandBuykommuniziert. Und deren Schnittstellen stehen leider fest.

LG,
Tviskjola
Tviskjola ist offline  
Alt 16.07.2010, 12:06  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.990
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Und wieso entstehen dabei Redirects?!
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 16.07.2010, 12:17  
Neuer Benutzer
 
Registriert seit: 15.07.2010
Beiträge: 10
PHP-Kenntnisse:
Anfänger
Tviskjola befindet sich auf einem aufstrebenden Ast
Standard Redirects

Zitat:
Zitat von nikosch Beitrag anzeigen
Und wieso entstehen dabei Redirects?!
Hi,

bei der Kommunikation z.B. mit der ClickandBuy-API muss ich zuerst einen Payment-Link zusammenbauen, diesen dann (den User-Click simulierend) via HTTP-Redirect aufrufen. Der Payment-Link ruft dann innerhalb der ClickandBuy-Engine mein Script erneut auf. Das Script validiert dann die empfangenen Header-Parameter und führt einen weiteren Redirect via HTTP mit einem Success Parameter aus, ebenfalls wieder auf mein Script.

Jede Menge HTTP Redirects...leider. Und jedesmal wird mein Script nach einem Redirect erneut aufgerufen und ich instanziiere neu.

Schräges Konstrukt, ich weiss

@Edit: Singleton hat in sofern etwas damit zu tun, als dass ich nach jedem HTTP-Redirect auf meine eigene Klasse diese neu instanziiere, was ich mit dem Singleton Pattern verhindern wollte damit mir nicht immer die ganzen Daten flöten gehen. Mag sein, dass der Ansatz unpraktikabel ist, das geb ich gern zu^

Geändert von Tviskjola (16.07.2010 um 12:20 Uhr).
Tviskjola ist offline  
Alt 16.07.2010, 13:14  
Erfahrener Benutzer
 
Registriert seit: 14.10.2007
Beiträge: 306
PHP-Kenntnisse:
Fortgeschritten
Papst befindet sich auf einem aufstrebenden Ast
Standard

Da du einen neuen Scriptaufruf hast, wirst du wohl nicht drumherum kommen neue Instanzen der Klassen zu haben.
Das einzige was du machen könntest wäre die entsprechenden Instanzen zu cachen... Serialisiert oder anders wiederherstellbar zwischenzuspeichern. Dafür gibt es ja entsprechende magische Methoden.
Papst ist offline  
Alt 16.07.2010, 14:01  
Neuer Benutzer
 
Registriert seit: 15.07.2010
Beiträge: 10
PHP-Kenntnisse:
Anfänger
Tviskjola befindet sich auf einem aufstrebenden Ast
Standard Magische Methoden

Zitat:
Zitat von Papst Beitrag anzeigen
Da du einen neuen Scriptaufruf hast, wirst du wohl nicht drumherum kommen neue Instanzen der Klassen zu haben.
Das einzige was du machen könntest wäre die entsprechenden Instanzen zu cachen... Serialisiert oder anders wiederherstellbar zwischenzuspeichern. Dafür gibt es ja entsprechende magische Methoden.
Hi,

ok, das wäre zumindest ein Ansatz. Hab ich noch nie ausprobiert und schau ich mir nachher mal an. Damit ich das richtig verstanden habe:

Du meinst serialize() und unserialize() in Verbindung mit __sleep() und __wakeup() richtig?

LG,
Tviskjola
Tviskjola ist offline  
Alt 16.07.2010, 14:16  
Erfahrener Benutzer
 
Registriert seit: 14.10.2007
Beiträge: 306
PHP-Kenntnisse:
Fortgeschritten
Papst befindet sich auf einem aufstrebenden Ast
Standard

ja.
Kann dir aber leider auch nicht viel zu sagen, da ich es selber noch nie ausprobiert habe.
Papst ist offline  
Alt 16.07.2010, 14:22  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.990
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ich suche noch ein bissel die Relevanz, warum die Instanz fortgeführt werden muss.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 17.07.2010, 18:49  
Neuer Benutzer
 
Registriert seit: 15.07.2010
Beiträge: 10
PHP-Kenntnisse:
Anfänger
Tviskjola befindet sich auf einem aufstrebenden Ast
Standard Scope

Zitat:
Zitat von nikosch Beitrag anzeigen
Ich suche noch ein bissel die Relevanz, warum die Instanz fortgeführt werden muss.
Hi,

es wäre nicht unbedingt notwendig die Instanz fortzuführen. Die entstehenden Daten könnte ich ja zumindest in einer Session bis zum nächsten Aufruf wegspeichern, oder wie ja bereits oben vorgeschlagen mit serialize und sleep sichern und in der nächsten Instanz versuchen wieder herzustellen.

Das eigentliche Problem ist, dass ich - wenn durch die HTTP-Redirects auf die Klasse selbst jedesmal neu instanziiert wird, ich scheinbar nicht sauber mit einem Return zu der Klasse zurückkehren kann die die allererste Instanz aufgerufen hat.

Ich bin jetzt aber auch an einem Punkt angekommen wo mir das Konstrukt zu abgedreht und unpraktikabel wird, weshalb ich jetzt eine Ebene höher versuche die Architektur umzustellen um sowas dann nicht mehr machen zu müssen.

Ich bedanke mich bei euch für eure Zeit und eure Geisteskraft.

Viele Grüße,
Tviskjola
Tviskjola ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit Ajax - Session Problem halskrause PHP Tipps 2009 10 12.01.2010 02:27
[Erledigt] Problem mit Mehrsprachigkeit Sniper_Kotaro PHP Tipps 2009 2 16.12.2009 11:47
Problem beim Download Management mistermint PHP Tipps 2009 8 24.10.2009 11:34
Umlaut Problem nokieone PHP Tipps 2009 7 16.10.2009 19:30
Problem mit Basedir in PhP cmuch05 Datenbanken 9 08.01.2009 14:17
[Erledigt] Problem: PHP Selbe Datei mehr als 1 Mal soulan PHP Tipps 2008 13 28.11.2008 22:51
Problem Upload mehrere Dateien und schreiben in DB Lapje PHP Tipps 2008 1 22.10.2008 13:12
utf8 Problem (Daten aus DB auslesen) go1denboy PHP Tipps 2008 1 23.09.2008 12:19
Problem mit swfobjects R4v3r JavaScript, Ajax und mehr 8 21.09.2008 14:17
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
Problem mit Global Scope von Funktionen WickedImp PHP-Fortgeschrittene 13 16.05.2006 00:30
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php scope problem, php soapclient redirect, soapclient redirect, soapclient __sleep, singleton soapclient php, php soapclient singleton, clickandbuy api php 2010, php soap scope, click&buy php api, singleton soap client, abfrage php soap clickandbuy, php soapserver singleton, php click&buy api, soap: aufruf der servermethode, clickandbuy soapclient, problem php

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:08 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum