Tự học SOAP đòi hỏi bạn phải học XML và rất nhiều công cụ cụ thể của SOAP.
Tuy nhiên, bạn đã gắn thẻ câu hỏi của mình PHP, vì vậy tôi cho rằng những gì bạn đang thực sự hỏi là tìm hiểu cách sử dụng dịch vụ web SOAP thông qua PHP. Điều này khác với việc học SOAP vì PHP (giống như hầu hết các ngôn ngữ khác) tóm tắt các bit XML lộn xộn của SOAP và biến nó thành một đối tượng dễ sử dụng.
Đó là lý thuyết.
Có hai bộ công cụ SOAP được sử dụng phổ biến trên PHP. Một được gọi là NuSOAP. Điều này hoạt động khá tốt, nhưng không còn trong quá trình phát triển tích cực (nó được viết trước khi PHP cung cấp lớp SOAP dựng sẵn của riêng nó). Nếu bạn muốn sử dụng NuSOAP, đây là trang web chính thức của dự án: http://nusoap.sourceforge.net/
Nếu bạn đang sử dụng PHP5.2 hoặc 5.3 (bạn nên làm vì chúng là phiên bản hiện được hỗ trợ), thì bạn sẽ có một lớp SOAP dựng sẵn. Nếu bạn muốn sử dụng lớp SOAP PHP chính thức, đây là trang hướng dẫn sử dụng: http://php.net/manual/en/book.soap.php
Khi bạn đã chọn lớp SOAP bạn muốn sử dụng, bạn sẽ cần biết một chút về dịch vụ web SOAP nói chung, và về dịch vụ cụ thể bạn muốn sử dụng.
Trước tiên, bạn sẽ cần biết liệu dịch vụ có cung cấp WSDL hay không. WSDL là một tài liệu XML khác định nghĩa các phương thức và các tham số có sẵn trên dịch vụ SOAP. Điều này cho phép lớp SOAP của bạn định nghĩa một lớp cho dịch vụ SOAP, làm cho cuộc sống của bạn trở thành một lập trình viên dễ dàng hơn. Trong thực tế trong PHP nó không thực sự làm cho nhiều differench mặc dù.
Tôi cũng khuyên bạn tải xuống SOAP UI, một công cụ gỡ lỗi cho các dịch vụ SOAP. Nó cho phép bạn xem và sửa đổi mã XML chính xác được gửi và nhận.Nó sẽ giúp bạn tìm hiểu và hiểu cách SOAP hoạt động, và cũng giúp bạn gỡ lỗi nếu mã PHP của bạn không hoạt động như mong đợi.
[EDIT] Rõ ràng điều quan trọng nhất là biết API bạn đang làm việc.
Nếu dịch vụ bạn đang xử lý có WSDL, PHP sẽ tự động tạo các phương thức thích hợp cho bạn khi bạn tạo đối tượng. Ví dụ:
$client = new SoapClient("http://somedomain/stockquote.wsdl");
print($client->getStockQuote("MSFT"));
Nó thực sự đơn giản như vậy. Cấp, đây là một ví dụ khá đơn giản; hầu hết các dịch vụ SOAP (chắc chắn là những dịch vụ mà tôi đã sử dụng!) lấy nhiều tham số hơn thế, và chúng thường lấy chúng dưới dạng một cấu trúc mảng lồng nhau khổng lồ.
Nếu dịch vụ của bạn không có một WSDL, bạn sẽ phải gọi các phương pháp sử dụng một phương pháp hơi khác nhau:
$client = new SoapClient(null, array('location' => "http://somedomain/stockquote.asp"));
print($client->__soapCall('getStockQuote',"MSFT"));
Hy vọng rằng sẽ giúp bạn hiểu nó tốt hơn một chút.
Tôi vẫn khuyên bạn nên đi với SOAP UI, vì nó sẽ giúp bạn hiểu SOAP nói chung tốt hơn rất nhiều. Bạn cũng nên đọc các trang hướng dẫn sử dụng lớp PHP SOAP: http://php.net/manual/en/book.soap.php - tài liệu rất kỹ lưỡng, mặc dù với tất cả những thứ này, nó có thể khó khăn để tiếp cận lúc đầu vì nó là một tham chiếu chứ không phải hướng dẫn.
Sử dụng thư viện SOAP. Tôi đã không sử dụng một bản thân mình trong PHP nhưng rất nhiều người sử dụng một trong các dịch vụ web của chúng tôi sử dụng NuSOAP http://sourceforge.net/projects/nusoap/ Nó nên trừu tượng tất cả những thứ phức tạp đi cho bạn. – Rup