SOAP membentuk lapisan dasar dari tumpukan layanan Web. Ia menyediakan cara yang rapi agar aplikasi PHP saling berkomunikasi atau dengan aplikasi yang ditulis dalam bahasa lain. PRADO menyediakan TSoapService yang membuat pengembagan aplikasi server SOAP menjadi tugas yang sangat mudah.
Untuk menggunakan TSoapService, konfigurasi itu dalam spesifikasi aplikasi seperti berikut:
Contoh menetapkan penyedia layanan SOAP bernama stockquote yang mengimplementasikan metode SOAP getPrice dalam kelas penyedia StockQuote,
Dengan kode sederhana di atas, kita sudah menyelesaikan layanan SOAP sederhana yang membolehkan aplikasi lain untuk meng-query harga dari stok tertentu. Sebagai contoh, umumnya klien SOAP bisa ditulis seperti berikut guna mendapatkan harga stok atas IBM,
Perhatikan URL yang digunakan untuk membentuk SoapClient (kelas disediakan oleh ekstensi SOAP PHP). Ini adalah URL untuk WSDL yang menjelaskan protokol komunikasi untuk layanan SOAP yang baru kita implementasikan. WSDL sering kali terlalu rumit untuk ditulis secara manual. Kebetulan, TSoapService bisa membuat ini bagi kita menggunakan generator WSDL. Secara umum, URL untuk membuat WSDL secara otomatis dalam PRADO mempunyai format berikut:
Agar generator WSDL membuat WSDL untuk layanan SOAP, kelas penyedia perlu untuk mengikuti sintaks tertentu. Dalam keadaan tertentu, untuk metode yang akan diperlihatkan sebagai metode SOAP, kata kunci @soapmethod harus muncul dalam komentar phpdoc terhadap metode dengan baris berikut yang menetapkan parameter metode dan nilai hasil:
Parameter yang benar dan tipe hasil termasuk: string, int, boolean, float, array, mixed, dll. Anda dapat juga menetapkan nama kelas sebagai tipe, yang menterjemahkan ke dalam tipe SOAP kompleks. Sebagai contoh, untuk tipe kompleks Contact
Untuk obyek soap kompleks, properti obyek ditetapkan dengan kata kunci @soapproperty dalam phpdocs. Selanjutnya, nama tipe properti harus ditetapkan sebagai @var type $name di mana type adalah tipe apapun yang benar seperti telah disebutkan sebelumnya dan $name akan mendefinisikan properti name (catatan bahwa jika kelas Anda adalah TComponent, Anda bisa menyediakan properti pengambil/penentu).
Sebuah array dari obyek yang kompleks juga bisa dihasilkan dengan menambahkan pasangan yang dilindungi kurung kotak setelah nama tipe. Sebagai contoh, untuk menghasilkan array dari tipe Contact, kita mendefinisikan @return Contact[] ....
Piranti semacam itu tersedia untuk Mac OS X Tiger dari http://www.ditchnet.org/soapclient/
TSoapService bisa dikonfigurasi dan dikustomisasi dalam beberapa cara. Dalam contoh di atas, elemen <soap> sebenarnya menetapkan sebuah layanan SOAP menggunakan implementasi standar TSoapServer. Atribut dalam <soap> dikirimkan ke TSoapServer sebagai nilai properti awalnya. Sebagai contoh, atribut provider menginisialisasi properti Provider dari TSoapServer. Dengan menyetel SessionPersistent menjadi true dalam elemen <soap>, turunan penyedia akan sama di dalam sesi pengguna. Anda bisa mengembangkan kelas server SOAP sendiri dan menggunakannya dengan menetapkan atribut class dari <soap>.
Standarnya, server SOAP PHP akan membuat obyek dari tipe StdClass ketika obyek diterima dari klien. Server soap bisa dikonfigurasi untuk secara otomatis membuat obyek dari obyek tipe tertentu diterima sebagai parameter metode. Sebagai contoh, jika kita mempunyai sebuah metode Soap yang menerima obyek Contact sebagai parameter.