[PHP/SOAP] Par où commencer ?

Par où commencer ? [PHP/SOAP] - PHP - Programmation

Marsh Posté le 14-02-2011 à 09:18:46    

Bonjour à tous et à toutes.
Je viens me tourner vers vous en ce joyeux lundi matin sous la pluie parce que j'ai besoin d'un coup de main.
 
Je me trouve actuellement en stage dans une entreprise qui me demande de creer un web service basé sur php/soap/wsdl, censé envoyer à un client des informations au format xml. Jusque là pas de soucis. Du moins en théorie.
J'ai pas mal de connaissance en php, mais en SOAP, rien, que dalle, nada, et j'ai beau fouiller sur internet,je n'arrive pas à comprendre comment monter mon web service. J'ai vaguement fait quelques exemple d'architectures client.serveur mais... Pas de déclic.
 
En fait je n'arrive pas à visualiser comment marche l'application. J'ai, de base, un fichier wsdl avec les fonctions à implémenter dans le webservice, j'ai plus ou moins compris comment les mettre en oeuvre et avoir les résultats... Enfin... J'ai du mal à comprendre comment mettre en oeuvre la relation avec la base de données. Existe-t-il un protocole SOAP pur et dure pour aller les chercher, ou faut-il travailler avec une simple connexion mysql au niveau du serveur en travaillant sur des classes ? Et comment récupérer les données sous forme de xml ? Dans les exemples que j'ai fait, il renvoi toujours les valeurs telle quelle, mais jamais au format xml ?  
 
Enfin tout ça et un peu confus et je cherche quelqu'un qui serait prêt à m'expliquer (avec pas mal de patiente, comme ond it je comprends vite mais il faut m'expliquer longtemps  :ange: ) comment mettre en oeuvre les bases, ou qui aurait un exemple concret à me montrer d'une appli en SOAP qui renvoi des données collectés...
 
Voila, je vous remercie et bonne journée à vous !

Reply

Marsh Posté le 14-02-2011 à 09:18:46   

Reply

Marsh Posté le 14-02-2011 à 10:12:35    

Tu peux utiliser les libs SOAP type NuSOAP (compatible PEAR).
 
Sinon le meilleur choix si tu doit faire un développement autonome, tu peux utiliser Zend Framework et son composant Zend Soap qui fait client/serveur SOAP.
 
Faire un parser de WSDL et de requete/reponse SOAP n'est pas a mon sens très bon. Les libs sont là et maintenues, t'ira beaucoup plus vite et ça sera fiable et interopérable.
 
Sinon pour l'interrogation principale : SOAP n'est qu'en protocole de communication entre un client et un serveur. Ca décrit les objets et les methodes disponibles. Après en interne le serveur fait ce qu'il veut, mais c'est à lui d'implémenter les méthodes et d'avoir en interne des classes sur lesquelles travailler qui représentes les objets externes.
 
Néanmoins suivant les libs et le langage, il y a certaines automatisations faites par la lib.
 
cf: http://framework.zend.com/manual/f [...] erver.html


Message édité par MEI le 14-02-2011 à 10:15:37

---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
Reply

Marsh Posté le 15-02-2011 à 08:17:28    

Je te remercie pour ta réponse rapide, je vais aller jeter un coup d'oeil du coté de Zend ^^

Reply

Marsh Posté le 15-02-2011 à 13:30:02    

avant d'utiliser des libs oublie pas que PHP intègre une extension SOAP nativement :
http://fr.php.net/manual/fr/book.soap.php

Message cité 1 fois
Message édité par stealth35 le 15-02-2011 à 13:30:19
Reply

Marsh Posté le 15-02-2011 à 13:46:38    

Reply

Marsh Posté le 15-02-2011 à 13:49:26    

stealth35 a écrit :

avant d'utiliser des libs oublie pas que PHP intègre une extension SOAP nativement :
http://fr.php.net/manual/fr/book.soap.php


Zend_Soap encapsule le composant Soap de PHP.


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
Reply

Marsh Posté le 17-02-2011 à 09:48:03    

+1 pour Zend_Soap_Server, il fonctionne en mode WSDL ou non, la gestion d'erreur est complète (version etc.)
 
C'est du solide

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed