Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan SOAP dengan php?

Bagaimana untuk menggunakan SOAP dengan php?

WBOY
WBOYasal
2023-05-31 22:51:042182semak imbas

Dalam pembangunan aplikasi web moden, penggunaan SOAP (Simple Object Access Protocol) adalah perkara biasa. SOAP ialah protokol berkod XML untuk bertukar maklumat berstruktur melalui web. Artikel ini akan memperkenalkan cara menggunakan SOAP dalam PHP, termasuk cara mencipta klien SOAP dan pelayan SOAP.

1. Kenapa guna SABUN?

SOAP ialah protokol untuk bertukar-tukar data melalui Internet. Ia membenarkan aplikasi berkomunikasi melalui mesej XML dan oleh itu popular di kalangan aplikasi merentas platform. SOAP menggunakan HTTP atau HTTPS untuk pengangkutan, jadi ia boleh berkomunikasi antara komputer yang berbeza melalui Internet.

SOAP ialah protokol deskriptif yang menggunakan WSDL (Bahasa Penerangan Perkhidmatan Web) untuk menerangkan perkhidmatan. WSDL ialah dokumen berformat XML yang mengandungi penerangan terperinci antara muka dan kaedah. Menggunakan WSDL, pelanggan boleh mengetahui dengan cepat tentang operasi dan parameter yang boleh dilakukan pada pelayan jauh. Oleh itu, SOAP boleh digunakan untuk mencipta perkhidmatan Web yang boleh diedarkan.

2. Cipta klien menggunakan SOAP

Langkah-langkah untuk mencipta klien SOAP adalah seperti berikut:

  1. Perkenalkan sambungan SOAP: sambungan SOAP tidak ditambahkan pada PHP secara lalai. Untuk menggunakan SOAP, anda perlu memasang sambungan SOAP. Anda boleh mendayakannya melalui fail PHP.ini atau dengan menambah sambungan secara manual.
  2. Mencipta klien SOAP: Mencipta klien SOAP adalah sangat mudah. Anda hanya perlu memanggil pembina SoapClient() yang disediakan oleh PHP dan lulus alamat fail WSDL. Berikut ialah contoh kod untuk mencipta klien SOAP:
$client = new SoapClient("http://www.example.com/webservicedoc.wsdl");
  1. Antara muka panggilan: Menggunakan objek klien SOAP yang dibuat, anda boleh menghubungi perkhidmatan jauh dengan mudah. Anda boleh memanggil kaedah antara muka dan lulus parameter yang diperlukan. Berikut ialah kod sampel:
$result = $client->add(2, 3);
echo $result;

Dalam sampel kod di atas, kami telah memanggil kaedah add() dalam perkhidmatan web dan lulus dua parameter. Pelayan akan memproses parameter ini dan mengembalikan hasilnya. Dalam contoh ini, pelayan akan mengembalikan 5, yang disimpan dalam pembolehubah $result.

3. Cipta pelayan menggunakan SOAP

Untuk mencipta pelayan menggunakan SOAP, anda perlu melengkapkan empat langkah berikut:

  1. Tulis fail WSDL: Cipta pada fail WSDL pelayan SOAP. WSDL ialah dokumen format XML yang menerangkan antara muka dan kaedah perkhidmatan Web. Dokumen WSDL mesti mengandungi teg WebService, yang mengandungi maklumat antara muka perkhidmatan.
  2. Mencipta objek perkhidmatan SOAP: Mencipta objek perkhidmatan SOAP adalah sangat mudah. Kelas objek ini bertanggungjawab untuk melaksanakan antara muka dan kaedah perkhidmatan Web. Berikut ialah contoh kod untuk mencipta objek perkhidmatan SOAP:
class MyService {

    function add($a, $b) {
        return $a + $b;
    }
}

$server = new SoapServer("http://www.example.com/webservicedoc.wsdl");
$server->setClass("MyService");
$server->handle();

Dalam contoh di atas, kami mencipta kelas yang dipanggil MyService dan melaksanakan kaedah yang dipanggil "tambah". Kaedah ini menambah dua hujah dan mengembalikan hasilnya. Kami kemudian mencipta objek pelayan SOAP bernama $server dan menyuruhnya menggunakan kelas MyService untuk mengendalikan permintaan masuk.

  1. Ikat pelayan SOAP ke URL: Sekarang, kita perlu mengikat perkhidmatan SOAP ke URL. Ini boleh dicapai dengan memanggil kaedah setEndpoint(). Berikut ialah contoh mengikat lengkap:
$uri = "http://www.example.com/webservice.php";

$server = new SoapServer("http://www.example.com/webservicedoc.wsdl");
$server->setClass("MyService");
$server->setEndpoint($uri);

$server->handle();

Dalam contoh di atas, kami akan mengikat URI http://www.example.com/webservice.php ke pelayan SOAP.

  1. Terbitkan perkhidmatan SOAP: Selepas melengkapkan persediaan pelayan SOAP, kami perlu menerbitkannya ke Web. Kita boleh menggunakan fungsi SoapServer() atau SoapClient() yang telah ditetapkan dalam PhP untuk menyelesaikan tugas ini. Berikut ialah contoh kod:
$uri = "http://www.example.com/webservice.php";

$server = new SoapServer("http://www.example.com/webservicedoc.wsdl");
$server->setClass("MyService");
$server->setEndpoint($uri);

$server->handle();

$client = new SoapClient("http://www.example.com/webservicedoc.wsdl");
$result = $client->__soapCall("add", [2, 3]);

echo $result;

Dalam contoh di atas, kami menggunakan fungsi SoapServer() untuk menerbitkan perkhidmatan SOAP ke Web. Kami kemudian mencipta objek klien SOAP bernama $client dan memanggil kaedah jauh untuk ujian.

Kesimpulan

SOAP ialah protokol yang boleh bertukar-tukar maklumat berstruktur melalui rangkaian. Menggunakan SOAP dalam php, anda boleh membuat pelayan SOAP dan klien SOAP untuk melaksanakan perkhidmatan web. Menggunakan WSDL untuk menerangkan antara muka dan kaedah perkhidmatan web, pelanggan boleh memahami kaedah dan parameter yang akan dipanggil dengan mudah. Berbanding dengan protokol perkhidmatan web lain, seperti RESTful, SOAP mempunyai banyak ciri lanjutan, seperti pengurusan transaksi dan pengendalian ralat. Apabila anda perlu membina perkhidmatan web yang selamat, berkuasa dan fleksibel, atur program dengan SOAP.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan SOAP dengan php?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn