2010-08-12 21 views
0

J'ai un WSDL généré par WCF et maintenant ce WSDL devrait être utilisé pour créer un service web PHP. Mon WSDL contient des mappages aux classes .NET personnalisées (complexType) et j'aurais besoin d'un outil PHP WSDL qui peut générer les classes PHP équivalentes ainsi que le code stub (génération côté serveur).Comment générer des classes auxiliaires et du code stub avec wsdl2php pour un service web PHP?

je lis que le wsdl2php serait l'outil idéal pour faire le travail si je l'ai essayé à l'adresse: (http://labs.wso2.org/wsf/php/wsdl2phptool.php)

Il a travaillé en partie en créant le code stub mais il n'a pas créé aide classes (les paramètres de la fonction semblent être de type anyType et un seul paramètre est généré pour chaque fonction). J'ai aussi la version de script que je peux courir avec le genre suivant de commande sous Windows:

php wsdl2php.php -s http://My.Server.com/MyWCFService/MyWCFService.svc?wsdl> MyWebService.php

mais pour une raison quelconque, il ne semble pas travailler il sort un fichier vide. Je ne suis pas un expert PHP car je suis un développeur .NET mais je devrais tester comment notre WSDL fonctionne avec les services web PHP (juste pour voir qu'il est possible de générer du code PHP à partir de notre WSDL de la même manière que dans .NET).

Je vous serais reconnaissant si vous pouviez me donner un exemple simple de génération de classes auxiliaires et de code stub pour un service web PHP.

Merci! :)

Répondre

0

Trouvé la solution! Afin de générer des classes auxiliaires en plus du code stub avec wsdl2php, vous aurez besoin d'un seul fichier WSDL. La version actuelle (2.1.0) de wsdl2php a du mal à comprendre le WSDL généré par WCF. Après avoir créé un seul WSDL WCF en utilisant WCFExtras, j'ai réussi à générer des classes auxiliaires!

« http://wcfextras.codeplex.com/ »

« http://weblogs.asp.net/pglavich/archive/2010/03/16/making-wcf-output-a-single-wsdl-file-for-interop-purposes.aspx » (à lire d'abord comme il est important de préciser namespaces correctement ou vous rencontrerez des problèmes avec WCFExtras)

0

Vous pouvez également utiliser des modèles de T4 pour générer ServiceProxies et des classes DataContract de votre implémentation de service. Je les ai développais pour un projet de la mine, ils sont libérés sur GitHub y compris les échantillons:

https://github.com/schaermu/wcf-phpclient-t4

Juste au cas où vous voulez que la logique de génération de proxy dans votre solution .NET.