Just a very short tip as it was a big surprise to me :) If you have xdebug enabled SoapClient will not throw an exception but cause a fatal error.
All you have to do is disable xdebug or make sure that soap service is available.
I have worked with SOAP services from time to time but now i have actually even nicer way to debug them. I still use SOAPUI as its an amazing tool but now i can easily see what is PHP doing :- )
Before, i would simply log everything in raw xml with headers etc. before i sent it out and whenever i got a response back i would log hat too. This is a great way to keep history of what was actually sent and what did we actually get back in case of any investigations etc. It does not impact the performance that much if your volumes of calls are low so you can even enable it temporarily on production servers to see what is there.
Seems like i am out of luck lately when it comes to books. I must say this book was not really my type. Sometimes it is not easy so describe why, but book is just tough to read.
The thing i did not like about the book was that examples drag for entire pages. I know its difficult to show some things in concise way but i think this book had the longest code examples i have ever seen : -)
Some times you might come across the mysterious web service error in PHP saying: 'Error Fetching http headers'
What it means is that connection or the call itself to the web service took longer than expected. Extensions does not want to wait forever so decides to quit with error.
In PHP while using SOAP extension and calling external service, you might get into problem that PHP keeps on saying that method does not exist.
You are calling a method on a service that has the method and you are still getting "Procedure 'xxx' not present" error.
Error would look more or less like this:
Seems that creators of xampp did not include the soap extension in the cli executable. Its not available as module either so we have to compile it ourselves. Notes inside.