Aprender SOAP por sí solo requiere que aprenda XML y muchas cosas específicas de SOAP.
Sin embargo, ha etiquetado su pregunta PHP, por lo que supongo que lo que realmente está pidiendo es aprender a usar un servicio web SOAP a través de PHP. Esto es diferente al aprendizaje de SOAP porque PHP (como la mayoría de los otros lenguajes) abstrae los desordenados bits XML de SOAP y lo convierte en un objeto fácil de usar.
Esa es la teoría, de todos modos.
Hay dos juegos de herramientas SOAP de uso común en PHP. Uno se llama NuSOAP. Esto funciona bastante bien, pero ya no está en desarrollo activo (fue escrito antes de que PHP proporcionara su propia clase SOAP incorporada). Si desea utilizar NuSOAP, aquí está el sitio web oficial del proyecto: http://nusoap.sourceforge.net/
Si está utilizando PHP5.2 o 5.3 (que debería ser, ya que son las únicas versiones compatibles actualmente), entonces usted Tendré una clase SOAP incorporada. Si desea utilizar la clase oficial de PHP SOAP, aquí está la página del manual: http://php.net/manual/en/book.soap.php
vez que haya elegido el que la clase de SOAP que desea utilizar, usted necesitará saber un poco acerca de los servicios web SOAP en general, y sobre el servicio específico que desea usar.
En primer lugar, deberá saber si el servicio proporciona un WSDL. Un WSDL es otro documento XML que define los métodos y parámetros disponibles en el servicio SOAP. Esto le permite a su clase SOAP definir una clase para el servicio SOAP, lo que le hace la vida más fácil como programador. En la práctica en PHP, en realidad no hace mucha diferencia.
También recomiendo descargar SOAP UI, que es una herramienta de depuración para servicios SOAP. Le permite ver y modificar el código XML exacto que se envía y recibe.Te ayudará a aprender y comprender cómo funciona SOAP, y también te ayudará a depurar si tu código PHP no funciona como se espera.
[EDITAR] Obviamente, lo más importante es conocer la API con la que está trabajando.
Si el servicio que está tratando tiene un WSDL, PHP generará automáticamente los métodos apropiados para usted cuando cree el objeto. Por ejemplo:
$client = new SoapClient("http://somedomain/stockquote.wsdl");
print($client->getStockQuote("MSFT"));
Realmente es así de simple. De acuerdo, este es un ejemplo bastante simple; la mayoría de los servicios SOAP (¡ciertamente los que he usado!) toman muchos más parámetros que eso, y generalmente los toman en forma de una estructura de matriz anidada gigante.
Si el servicio no tiene un WSDL, que tendrá que llamar a los métodos que utilizan un método ligeramente diferente:
$client = new SoapClient(null, array('location' => "http://somedomain/stockquote.asp"));
print($client->__soapCall('getStockQuote',"MSFT"));
Esperamos que ayuda a entender un poco mejor.
Aún así recomiendo probar SOAP UI, ya que te ayudará a entender SOAP en general mucho mejor. También debe leer las páginas del manual de la clase SOAP de PHP: http://php.net/manual/en/book.soap.php - la documentación es muy minuciosa, aunque con todo esto puede ser desalentador acercarse al principio ya que es una referencia, no un tutorial.
Utilice una biblioteca SOAP. No he usado uno en PHP, pero muchas personas que usan uno de nuestros servicios web usan NuSOAP http://sourceforge.net/projects/nusoap/. Debe abstraer todas las cosas complicadas para usted. – Rup