Bosan dan lelah membangun implementasi SOAP yang jelek? Paket ini bertujuan untuk membantu Anda mengatasi beberapa masalah integrasi SOAP yang umum di PHP. Tujuannya adalah membuat integrasi dengan SOAP menjadi menyenangkan lagi!
Ingin informasi lebih lanjut tentang masa depan proyek ini? Lihat daftar proyek besar berikutnya yang akan kami kerjakan.
Anda dapat memilih klien HTTP apa yang ingin Anda gunakan. Paket ini mengharapkan beberapa implementasi PSR hadir untuk diinstal:
psr/cache-implementation
seperti symfony/cache
atau cache/*-adapter
psr/http-message-implementation
seperti nyholm/psr7
atau guzzlehttp/psr7
psr/http-factory-implementation
seperti nyholm/psr7
atau guzzlehttp/psr7
psr/http-client-implementation
seperti symfony/http-client
atau guzzlehttp/guzzle
Contoh:
$ composer require symfony/http-client nyholm/psr7
$ composer require phpro/soap-client
Karena hidup ini terlalu singkat untuk membaca dokumentasi, kami telah menambahkan panduan scaffolding yang akan membuat Anda berkomunikasi dengan server SOAP Anda dalam waktu singkat! Yang perlu Anda lakukan adalah:
./vendor/bin/soap-client wizard
Anda dapat menyesuaikan kode yang dihasilkan berdasarkan halaman instalasi manual di bab berikutnya.
Ini adalah implementasi klien di atas sabun-php. Untuk konfigurasi lebih lanjut, Anda dapat memeriksa dokumentasi di dalam paket php-soap.
Rules
generasiAssemblers
Secara default, SoapClient bekerja dengan campuran array, stdClasses, dan tipe skalar lainnya. Ini bukan praktik yang baik di dunia OOP modern karena:
Untuk mengatasi masalah di atas, paket ini akan memaksa Anda menggunakan objek Nilai untuk Permintaan dan Tanggapan. Kita tahu bahwa mempertahankan objek-objek nilai ini bisa menjadi pekerjaan yang berat. Jangan khawatir! Ada beberapa alat baris perintah yang tersedia yang akan membantu Anda menghasilkan dasar yang baik untuk memulai. Karena SoapClient memerlukan peta kelas WSDL ke Kelas PHP, tersedia juga generator peta kelas. Ini pasti akan menghemat banyak waktu Anda! Dengan menambahkan konverter tipe SOAP, dimungkinkan untuk mengubah nilai tipe SOAP tertentu dari/ke tipe PHP. Paket ini disertakan dengan beberapa transformator dasar untuk tanggal dan waktu. Selain itu, sangat mudah untuk membuat trafo Anda sendiri.
Masalah lainnya adalah SoapClient asli bekerja dengan banyak metode ajaib. Sulit untuk men-debug metode ajaib ini sehingga tidak ada penyelesaian kode. SOAP dan metode implementasinya berada pada objek yang sama.
Paket ini akan memaksa Anda untuk menggabungkan SoapClient ke dalam Klien Anda sendiri. Anda dapat memilih untuk hanya memaparkan metode yang Anda perlukan. Akan selalu jelas bagi pengembang apa yang ada di klien Anda, cara kerjanya, dan apa yang dikembalikan. Kami bahkan menyediakan Klien dasar untuk Anda gunakan dengan beberapa metode yang umum digunakan untuk debugging, otentikasi dan sistem acara.
Dalam banyak integrasi SOAP, logging, caching, dan panggilan Soap menggunakan metode yang sama. Ini membuat kode Anda sulit dibaca dan bergantung pada kelas/paket lain.
Membuat klien OO SOAP yang hebat berarti Anda harus membuat banyak kode. Ini bisa menjadi tugas membosankan yang bisa diotomatisasi. Itulah sebabnya kami menambahkan alat untuk secara otomatis menghasilkan objek SOAP dari skema XSD di dalam WSDL. Bahkan dimungkinkan untuk menentukan aturan pembuatan kode dan perakit kode Anda sendiri atau menggunakan salah satu dari banyak kelas bawaan kami.
Penting untuk menjaga kode Anda tetap bersih. Oleh karena itu, kami menambahkan pendengar acara ke klien Sabun Anda. Anda dapat mengikuti setiap langkah penting dari aliran SOAP. Dengan cara ini dimungkinkan untuk menambahkan logging, validasi, dan penanganan kesalahan dengan pelanggan acara. Cukup keren kan?!
Menerapkan ekstensi SOAP sungguh menyusahkan. Ini memaksa Anda untuk menimpa metode inti klien SOAP bawaan. Jika Anda pernah mengimplementasikan WSA atau WSSE di SOAP, Anda tahu ada yang salah pada intinya. Oleh karena itu, kami memudahkan Anda untuk memperluas klien SOAP kami. Anda dapat menentukan penangan transfer data seperti misalnya Guzzle yang ingin Anda gunakan. Tergantung pada pengendali yang dipilih, Anda dapat dengan mudah menambahkan dukungan untuk ekstensi SOAP atau otentikasi tingkat lanjut melalui middleware HTTP.
Berurusan dengan ext-soap bukan untuk semua pengembang. Ada beberapa kebiasaan buruk yang perlu Anda ketahui. Oleh karena itu, kami memungkinkan Anda untuk menggunakan driver mana pun yang ingin Anda gunakan. Secara default kami masih akan mengirimkan driver ext-soap, tetapi sepenuhnya opt-in. Anda dapat menggunakan implementasi SoapClient berbasis pengguna apa pun jika Anda membungkusnya dalam antarmuka driver kami sendiri.
Menguji layanan web itu sulit! Paket ini menyediakan berbagai cara untuk menguji layanan SOAP. Karena transportasinya berbasis HTTP, Anda bisa menggunakan implementasi php-vcr
. Jika Anda tidak ingin melakukan panggilan HTTP sebenarnya, Anda juga bisa menggunakan Transport
atau Caller
khusus dalam kasus pengujian Anda. Menguji klien SOAP Anda akan sangat cepat dan tanpa kesalahan apa pun di sisi integrasi pihak ketiga.
Terakhir, kami ingin memudahkan Anda mengonfigurasi SoapClient Anda. Itulah sebabnya kami menyertakan ClientFactory yang dihasilkan di mana Anda dapat mengonfigurasi Klien kustom Anda. Anda ingin beberapa pengaturan lain selama pengembangan dan produksi? Tidak masalah! Duduk dan biarkan pabrik menangani inisialisasi Klien Anda.