Sebagai bahasa pengaturcaraan sebelah pelayan yang popular, PHP menyediakan banyak sambungan untuk memenuhi keperluan yang berbeza. Antaranya, sambungan SOAP ialah alat untuk mencipta dan menggunakan perkhidmatan web, yang membolehkan pembangun melaksanakan penghantaran data merentas platform dalam PHP. Jika anda ingin mengetahui cara menggunakan sambungan SOAP, maka panduan permulaan ini adalah untuk anda.
1. Penerangan ringkas SOAP
SOAP ialah protokol berasaskan XML yang digunakan untuk komunikasi dalam persekitaran yang diedarkan. Protokol SOAP mentakrifkan format mesej standard yang boleh menghantar struktur data yang kompleks melalui rangkaian. Malah, protokol SOAP ialah spesifikasi yang mentakrifkan cara menghantar data dalam format XML melalui protokol pengangkutan seperti HTTP atau SMTP.
Perkhidmatan web boleh dibuat menggunakan protokol SOAP, yang hanya mendedahkan beberapa kaedah untuk panggilan oleh aplikasi lain. Protokol SOAP merangkumkan maklumat panggilan kaedah ke dalam dokumen format XML, dan kemudian menghantarnya ke pelayan melalui protokol HTTP Pelayan menerima permintaan dan mengembalikan respons Akhirnya, klien menghuraikan dokumen XML selepas menerima respons dan memperoleh hasilnya.
2. Sambungan SOAP
Dalam PHP, sambungan SOAP menyediakan beberapa kelas dan fungsi yang boleh membuat dan menggunakan perkhidmatan web dengan mudah. Apabila menggunakan sambungan SOAP, anda perlu memuatkan sambungan dahulu Anda boleh menambah kod berikut pada fail php.ini:
extension=php_soap.dll
atau gunakan fungsi dl("php_soap.dll");
untuk memuatkan sambungan secara dinamik.
3. Cipta pelayan SOAP
Sangat mudah untuk mencipta pelayan SOAP menggunakan sambungan SOAP Anda perlu menentukan beberapa antara muka dalam pelayan, gunakan fail WSDL standard untuk mendedahkan antara muka dunia luar, dan kemudian melaksanakan antara muka ini .
Berikut ialah contoh mudah yang menunjukkan cara membuat pelayan SOAP dan mendedahkan kaedah mudah:
class MyService { /** * @param int $a * @param int $b * @return int */ public function add($a, $b) { return $a + $b; } } $options = array( 'uri' => 'http://localhost/mySoapServer/', 'location' => 'http://localhost/mySoapServer/' ); $server = new SoapServer(null, $options); $server->setClass('MyService'); $server->handle();
Kod di atas mencipta kelas MyService
yang melaksanakan kaedah A add
yang mengira hasil tambah dua integer. Kemudian gunakan kelas SoapServer
untuk mencipta pelayan SOAP dan dedahkan kelas setClass
ke luar melalui kaedah MyService
. Akhir sekali, panggil kaedah handle
untuk menjalankan pelayan SOAP.
4. Menggunakan klien SOAP
Mencipta pelayan SOAP bukanlah kandungan utama artikel ini. Di bawah ini kami akan memberi tumpuan kepada cara menggunakan klien SOAP untuk memanggil kaedah yang disediakan oleh pelayan SOAP .
Menggunakan klien SOAP adalah sangat mudah dan boleh dicapai melalui kod berikut:
$options = array( 'uri' => 'http://localhost/mySoapServer/', 'location' => 'http://localhost/mySoapServer/', 'style' => SOAP_DOCUMENT, 'use' => SOAP_LITERAL, 'exceptions' => true, ); $client = new SoapClient(null, $options); $result = $client->__soapCall('add', array('a' => 1, 'b' => 2)); echo $result; //输出3
Kod di atas mencipta objek SoapClient
, dan kemudian menggunakan kaedah __soapCall
untuk memanggil kaedah add
pelayan dan lulus dalam dua parameter. Akhirnya, kami mengeluarkan hasilnya.
Apabila mencipta objek SoapClient
, anda perlu menghantar beberapa pilihan ini digunakan untuk menentukan beberapa ciri protokol SOAP Di sini kami menggunakan dua pilihan: SOAP_DOCUMENT
dan SOAP_LITERAL
untuk menentukan format mesej dan format Parameter, sila rujuk manual untuk butiran. Perlu diingat bahawa parameter pertama kaedah __soapCall
ialah nama kaedah yang akan dipanggil, dan parameter kedua ialah parameter yang akan dihantar, iaitu tatasusunan bersekutu.
5. Pengendalian Ralat SOAP
Apabila ralat berlaku pada pelayan SOAP atau klien, Pengecualian akan dilemparkan. Kita boleh menggunakan blok cuba-tangkap untuk menangkap pengecualian dan mengendalikannya dengan sewajarnya.
Berikut ialah kod sampel:
try { $result = $client->__soapCall('add', array('a' => 1, 'b' => 'not a number')); echo $result; } catch (SoapFault $e) { echo "SOAP Fault: {$e->faultstring}"; } catch (Exception $e) { echo "Exception: {$e->getMessage()}"; }
Dalam contoh di atas, kami sengaja menghantar parameter bukan angka kepada pelayan dan pelayan akan membuang pengecualian SOAP Fault . Dalam blok tangkapan, kami mula-mula menentukan sama ada ia adalah pengecualian SOAP Fault, dan jika ya, keluarkan atribut faultstring
dalam maklumat pengecualian. Jika tidak, nilai pulangan kaedah getMessage() pengecualian biasa ialah output.
6. Ringkasan
Setakat ini, kami telah memperkenalkan konsep asas protokol SOAP dan kaedah menggunakan sambungan SOAP untuk mencipta pelayan dan pelanggan SOAP. Jika anda ingin mengetahui lebih lanjut tentang sambungan SOAP, anda boleh merujuk kepada kandungan yang berkaitan dengan dokumentasi rasmi PHP.
Atas ialah kandungan terperinci Bermula dengan PHP: SOAP Extensions. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!