Rumah >pembangunan bahagian belakang >tutorial php >Bermula dengan PHP: SOAP Extensions

Bermula dengan PHP: SOAP Extensions

WBOY
WBOYasal
2023-05-20 10:31:351755semak imbas

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!

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