[PHP] PHP / SOAP verwarring, hulp nodig!

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dit is de situatie. Iemand heeft mij gevraagd om van een Python applicatie een PHP applicatie te maken. Deze Python applicatie zorgt middels Python Server Pages (PSP) ervoor dat Python programma's via het web (mbv Apache) benaderbaar zijn. De Python applicatie communiceert middels SOAP+XML met de backend.

Ik heb het volgende: een .py bestand (wat in feite de client is; deze genereert de dynamische content), een .wsdl bestand (beschrijft de remote procedures), en twee andere .py bestanden, gegenereerd door WDSL2Python van ZSI.

Nu wil ik dus met PHP + SOAP tegen die hele backend aan gaan babbelen. Wat moet ik daartoe doen? Is het voor mij enkel een kwestie van het aanspreken van functies uit het WSDL bestand (dus een SoapClient instancieren, en dan $client->Operatie(paramters) uitvoeren? Of moet ik zelf nog een PHP server schrijven?

De informatie betreffende SOAP+PHP is tamelijk summier. Wie kan me helpen?

Acties:
  • 0 Henk 'm!

  • seamus21
  • Registratie: December 2001
  • Laatst online: 24-02-2018
Zou je misschien een plaatje kunnen maken van welke apps er nu zijn en hoe deze met elkaar communiceren? En welke van die apps jij geacht wordt te herschijven in PHP ?

Always shoot for the moon. Even if you miss you will land among the stars...


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
seamus21 schreef op woensdag 15 februari 2006 @ 12:09:
Zou je misschien een plaatje kunnen maken van welke apps er nu zijn en hoe deze met elkaar communiceren? En welke van die apps jij geacht wordt te herschijven in PHP ?
Ik zal proberen dit zo duidelijk als mogelijk te beschrijven. Helaas kan ik niet al te veel in detail treden (mede omdat de backend voor mij een blackbox is en ook zal blijven).

Er draait ergens een server met daarop een database. Via een engine, welke via SOAP + XML benaderbaar is, worden er gegevens uit die database gehaald, welke weer op het beeld van een client getoverd moeten worden.

Op een webserver loopt nu een Python programma wat voor de SOAP communicatie met de databasebackend zorgt en tevens deze gegevens in HTML templates stopt (tmpl files). Wat ik weet. is dat voor de engine die op de backend loopt, middels CapeClear studio een WSDL file gegenereerd is. Vervolgens is er met ZSI een op PSP gebaseerde server gegenereerd (wederom automatisch) en is er een client geschreven wie in feite een interactieve communicatie, via HTML templates, mogelijk maakt. Nu is mij gevraagd die interactieve component in PHP te schrijven. In feite moet ik dus via de WSDL file gegevens uit de database halen en deze op het scherm toveren. Hiermee zou interfacing een stuk makkelijker worden.

Mijn vraag is dus: hoe pak ik dit aan. Wat ik zo begrijp uit de karige informatie die over dit onderwerp vestrekt wordt, zou het genoeg meoten zijn om een nieuwe SoapClient in PHP aan te maken in WSDL mode. Vervolgens zou door het sturen van de goede gegevens naar de backend een respons getriggerd moeten worden en zou deze respons naar het beeld gestuurd moeten worden. Ik snap dus echter niet precies hoe dit aan de client kant moet. Moet ik ook een PHP variant maken van die Python serverdingen? Ik vraag me dus echt af waar die goed voor zijn?

Acties:
  • 0 Henk 'm!

  • flashin
  • Registratie: Augustus 2002
  • Laatst online: 17-12-2023
Je PHP client maakt gewoon verbinding met die python-server. SOAP is het protocol, het maakt niet uit wat voor client je erop gooit.

Ik kan je aanraden om eens te kijken naar NuSOAP. Gebruikte ik toen ik met php4 werkte (doe ik overigens nog) en gebruik ik ook zelfs in php5.

Maker: http://dietrich.ganx4.com/nusoap/
Uitleg: http://dietrich.ganx4.com/nusoap/downloads/7469_Chap08.pdf (blz 6 tot en met 9)

Die pdf is zeker een aanrader.. Succes :)

[ Voor 3% gewijzigd door flashin op 15-02-2006 23:33 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
flashin schreef op woensdag 15 februari 2006 @ 23:32:
Je PHP client maakt gewoon verbinding met die python-server. SOAP is het protocol, het maakt niet uit wat voor client je erop gooit.

Ik kan je aanraden om eens te kijken naar NuSOAP. Gebruikte ik toen ik met php4 werkte (doe ik overigens nog) en gebruik ik ook zelfs in php5.

Maker: http://dietrich.ganx4.com/nusoap/
Uitleg: http://dietrich.ganx4.com/nusoap/downloads/7469_Chap08.pdf (blz 6 tot en met 9)

Die pdf is zeker een aanrader.. Succes :)
Dankjewel!

Ik had die PDF al gelezen (een half uur geleden :)). Het lijkt erop dat NuSOAP een betere SOAP implementatie is dan de ingebouwde SOAP implementatie van PHP. Tenminste, wanneer ik lees wat de mogelijkheden zijn, komt NuSOAP er beter uit... right?

Acties:
  • 0 Henk 'm!

  • flashin
  • Registratie: Augustus 2002
  • Laatst online: 17-12-2023
Dat zeggen ze over het algemeen wel ja. Ik heb de php5 client niet getest, maar ik geloof het allemaal wel. (mijn projecten waren niet echt performancegericht a la ms-nuecken ;))

De php5 library kan het waarschijnlijk allemaal op bijna dezelfde manier, mocht de performance dus uitmaken, voer wat tests uit:
http://nl3.php.net/manual...p-soapclient-soapcall.php

edit:

let wel als nusoap misschien niet werkt:
If you are scratching your head why NuSOAP not working on PHP 5.x , the reason is this built-in SOAP Extenstion uses same soapclient() class name as Nusoap.

replace 'soapclient' with 'soapclient_xxx' in nusoap.php and you are good to go...
Weet niet of ze dit probleem inmiddels hebben verholpen..

[ Voor 33% gewijzigd door flashin op 15-02-2006 23:44 ]

Pagina: 1