Imparare il SOAP da solo richiede di imparare l'XML e molte cose specifiche per SOAP.
Tuttavia, hai taggato la tua domanda in PHP, quindi presumo che quello che stai effettivamente chiedendo sia imparare a usare un servizio web SOAP attraverso PHP. Questo è diverso dall'apprendimento stesso del SOAP perché il PHP (come la maggior parte degli altri linguaggi) astrae i bit XML disordinati di SOAP e lo trasforma in un oggetto facile da usare.
Questa è la teoria, comunque.
Ci sono due toolkit SOAP in uso comune su PHP. Uno si chiama NuSOAP. Funziona abbastanza bene, ma non è più in sviluppo attivo (è stato scritto prima che PHP fornisse la propria classe SOAP integrata). Se si desidera utilizzare NuSOAP, ecco il sito web ufficiale del progetto: http://nusoap.sourceforge.net/
Se si utilizza PHP5.2 o 5.3 (che si dovrebbe essere, poiché sono le uniche versioni attualmente supportate), allora si Avremo una classe SOAP integrata. Se si desidera utilizzare la classe ufficiale di PHP SOAP, ecco la pagina di manuale: http://php.net/manual/en/book.soap.php
Una volta scelto quale la classe SOAP che si desidera utilizzare, sarà necessario conoscere un po 'di servizi web SOAP in generale, e sul servizio specifico che desideri utilizzare.
In primo luogo, è necessario sapere se il servizio fornisce un WSDL. Un WSDL è un altro documento XML che definisce i metodi e i parametri disponibili sul servizio SOAP. Ciò consente alla classe SOAP di definire una classe per il servizio SOAP, che semplifica la vita per te come programmatore. In pratica in PHP, però, non fa molta differenza.
Si consiglia inoltre di scaricare SOAP UI, che è uno strumento di debug per i servizi SOAP. Permette di vedere e modificare il codice XML esatto inviato e ricevuto.Ti aiuterà a capire e capire come funziona SOAP e ti aiuterà anche nel debugging se il tuo codice PHP non funziona come previsto.
[EDIT] Ovviamente la cosa più importante è conoscere l'API con cui si sta lavorando.
Se il servizio che hai a disposizione ha un WSDL, PHP genererà automaticamente i metodi appropriati per te quando crei l'oggetto. Ad esempio:
$client = new SoapClient("http://somedomain/stockquote.wsdl");
print($client->getStockQuote("MSFT"));
È davvero così semplice. Certo, questo è un esempio abbastanza semplice; la maggior parte dei servizi SOAP (sicuramente quelli che ho usato!) richiedono molti più parametri, e di solito li prendono sotto forma di una gigantesca struttura di array annidati.
Se il servizio non dispone di un WSDL, dovrete chiamare i metodi che utilizzano un metodo leggermente diverso:
$client = new SoapClient(null, array('location' => "http://somedomain/stockquote.asp"));
print($client->__soapCall('getStockQuote',"MSFT"));
Spero che ti aiuta a capire un po 'meglio.
Mi raccomando ancora di provare con SOAP UI, in quanto ti aiuterà a capire meglio SOAP in generale molto meglio. Dovresti anche leggere le pagine di manuale della classe SOAP PHP: http://php.net/manual/en/book.soap.php - la documentazione è molto accurata, anche se, come con tutte queste cose, può essere scoraggiante avvicinarsi all'inizio dato che è un riferimento, non un tutorial.
Utilizzare una libreria SOAP. Non ne ho usato uno da solo in PHP, ma molte persone che usano uno dei nostri servizi Web usano NuSOAP http://sourceforge.net/projects/nusoap/ Dovrebbe astrarre tutte le cose complicate per te. – Rup