Banyak organisasi telah mengadopsi Apache dan PHP sebagai lingkungan aplikasi Web mereka. Mengadopsi PHP dalam mode layanan Web mungkin tampak sulit. Namun nyatanya, dengan NuSoap, Anda dapat dengan mudah menggunakan PHP untuk membangun klien dan server SOAP.
Untuk mengilustrasikan cara menggunakan NuSoap dan PHP untuk membangun layanan Web, kami akan memberikan contoh sederhana. Contoh aplikasi ini terdiri dari server dan klien layanan Web PHP. Ini akan mengimplementasikan dua fungsi: membalikkan urutan karakter dalam string dan menemukan jumlah dua angka.
PHP SOAP Server Menyiapkan server SOAP sangat mudah dengan PHP dan NuSoap. Pada dasarnya, Anda cukup menulis fungsi yang ingin Anda ekspos ke layanan Web Anda dan mendaftarkannya ke NuSoap.
Oke, ada dua langkah lagi yang diperlukan untuk menyelesaikan pembuatan server SOAP PHP. Pertama, Anda harus membuat instance objek NuSoap dalam kode PHP Anda, lalu menggunakan metode HTTP POST untuk meneruskan data mentah ke NuSoap untuk diproses. Kedengarannya sederhana? Mari kita lihat Listing 1 dulu.
Daftar 1: sabunfunc.php
<?
require_once('nusoap.php');
fungsi terbalik($str){
$retval = "";
jika(strlen($str) < 1) {
return new sabun_fault('Klien','','String tidak valid');
}
untuk ($i = 1; $i <= strlen($str); $i++) {
$retval .= $str[(strlen($str) - $i)];
}
kembalikan $retval;
}
fungsi tambah2angka($angka1, $angka2) {
if (potong($angka1) != intval($angka1)) {
return new sabun_fault('Klien', '', 'Nomor pertama tidak valid');
}
if (potong($angka2) != intval($angka2)) {
return new sabun_fault('Klien', '', 'Nomor kedua tidak valid');
}
kembali ($angka1 + $angka2);
}
?>
Listing 1 memberikan file sumber sabunfunc.php. File ini berisi dua fungsi yang ingin kami ekspos ke layanan Web melalui protokol SOAP: reverse dan add2numbers, yang merupakan inti dari aplikasi layanan Web kami. Fungsi reverse mengambil satu argumen, membalikkan urutan karakter dalam string, dan mengembalikannya.
Daftar 2: sabunserver.php
<?
require_once('nusoap.php');
include('soapfunc.php');
$sabun = sabun_server baru;
$sabun->daftar('mundur');
$sabun->daftar('tambah2angka');
$sabun->layanan($HTTP_RAW_POST_DATA);
?>
Listing 2 mengilustrasikan penggunaan fungsi registrasi NuSoap dan pemanggilan penangan SOAP. Seperti yang Anda lihat, mendaftarkan dua fungsi Anda (di sabunfunc.php) dan meneruskan data POST ke objek sabun_server semudah membuat instance baru dari objek sabun_server. Objek sabun_server akan memeriksa data POST dan menentukan fungsi mana yang akan dipanggil, kemudian meneruskan parameter ke fungsi PHP ini. Data yang dikembalikan dari fungsi PHP dikemas ulang menjadi respons SOAP dan dikirimkan ke klien SOAP yang meminta layanan.
Klien SOAP PHP Sekarang kita telah membuat server SOAP menggunakan NuSoap dan PHP, kita perlu mengujinya. Sama seperti kita membuat program server SOAP, kita dapat menggunakan NuSoap untuk membuat program klien SOAP di PHP. Listing 3 memberikan program sumber dari program klien PHP SOAP.
Sekarang kita telah membuat server SOAP menggunakan NuSoap dan PHP, kita perlu mengujinya. Sama seperti kita membuat program server SOAP, kita dapat menggunakan NuSoap untuk membuat program klien SOAP di PHP. Listing 3 memberikan program sumber dari program klien PHP SOAP.
Daftar 3: sabunclient.php
<?
include('nusoap.php');
$client = new sabunclient('http://localhost/soapserver.php');
$str = "String ini akan dibalik";
$params1 = larik('str'=>$str);
$terbalik = $klien->panggilan('terbalik',$params1);
echo "Jika Anda membalikkan '$str', Anda mendapatkan '$terbalik'<br>n"
;
$n2 = 14;
$params2 = larik('angka1'=>$n1, 'angka2'=>$n2);
$tambahan = $klien->panggilan('tambah2angka', $params2);
echo "Jika Anda menambahkan $n1 dan $n2 Anda mendapatkan $tambahan<br>n";
?>
Untuk menggunakan program klien PHP pada server SOAP, Anda harus melakukan tiga hal. Pertama, Anda perlu membuat objek klien sabun. Objek sabunclient bertanggung jawab untuk menangani penyusunan parameter dan protokol SOAP. sabunclient memerlukan parameter yang harus berupa URL. URL ini dapat menunjuk ke titik akhir HTTP atau deskripsi WSDL dari server SOAP sebenarnya. Dalam kasus kami, ini adalah URL yang menunjuk ke server PHP SOAP kami.
Saat memanggil fungsi yang memerlukan parameter, Anda harus terlebih dahulu membuat array parameter, yang berisi sekumpulan pasangan nilai kunci. Kuncinya adalah nama parameternya, dan nilainya adalah nilai parameternya.
Saat Anda perlu memanggil suatu fungsi, Anda menggunakan objek sabunclient untuk memanggilnya dan meneruskan dua parameter. Parameter pertama adalah nama fungsi yang ingin Anda panggil, dan parameter kedua adalah array yang berisi parameter fungsi SOAP. Fungsi pemanggil akan mengembalikan nilai fungsi SOAP yang Anda panggil.
Untuk menjalankan contoh ini, cukup masukkan URL ke sabunclient.php di browser web Anda. Anda akan mendapatkan keluaran yang mirip dengan:
Jika Anda membalikkan 'String ini akan dibalik', Anda mendapatkan 'desrever eb lliw gnirts sihT' Jika Anda menambahkan 5 dan 14 Anda mendapatkan 19