เบื่อหน่ายกับการสร้างการใช้งาน SOAP ที่เส็งเคร็งใช่ไหม? แพ็คเกจนี้มีจุดมุ่งหมายเพื่อช่วยคุณแก้ไขปัญหาการรวม SOAP ทั่วไปใน PHP เป้าหมายคือการทำให้การบูรณาการกับ SOAP สนุกอีกครั้ง!
ต้องการข้อมูลเพิ่มเติมเกี่ยวกับอนาคตของโครงการนี้หรือไม่? ลองดูรายชื่อโครงการใหญ่ๆ ต่อไปที่เราจะดำเนินการ
คุณสามารถเลือกไคลเอนต์ HTTP ที่คุณต้องการใช้ แพคเกจนี้คาดว่าจะมีการใช้งาน PSR บางอย่างเพื่อที่จะติดตั้ง:
psr/cache-implementation
เช่น symfony/cache
หรือ cache/*-adapter
psr/http-message-implementation
เช่น nyholm/psr7
หรือ guzzlehttp/psr7
psr/http-factory-implementation
เช่น nyholm/psr7
หรือ guzzlehttp/psr7
psr/http-client-implementation
เช่น symfony/http-client
หรือ guzzlehttp/guzzle
ตัวอย่าง:
$ composer require symfony/http-client nyholm/psr7
$ composer require phpro/soap-client
เนื่องจากชีวิตนั้นสั้นเกินกว่าจะอ่านเอกสาร เราจึงได้เพิ่มวิซาร์ดโครงร่างซึ่งจะช่วยให้คุณสื่อสารกับเซิร์ฟเวอร์ SOAP ของคุณได้ในเวลาอันรวดเร็ว! สิ่งที่คุณต้องทำคือ:
./vendor/bin/soap-client wizard
คุณสามารถปรับแต่งโค้ดที่สร้างขึ้นตามหน้าการติดตั้งด้วยตนเองในบทถัดไป
นี่คือการใช้งานไคลเอนต์บน php-soap สำหรับการกำหนดค่าขั้นสูงเพิ่มเติม คุณสามารถตรวจสอบเอกสารประกอบภายในแพ็คเกจ php-soap
Rules
การสร้างAssemblers
ตามค่าเริ่มต้น SoapClient จะทำงานร่วมกับอาร์เรย์, stdClasses และประเภทสเกลาร์อื่นๆ ผสมกัน นี่ไม่ใช่แนวปฏิบัติที่ดีในโลก OOP สมัยใหม่ เนื่องจาก:
เพื่อแก้ไขปัญหาข้างต้น แพ็คเกจนี้จะบังคับให้คุณใช้ Value-objects สำหรับคำขอและการตอบกลับ เรารู้ว่าการรักษาคุณค่าวัตถุเหล่านี้อาจเป็นงานหนักได้ ไม่ต้องกังวล! มีเครื่องมือ commandline บางตัวที่จะช่วยคุณสร้างฐานที่ดีในการเริ่มต้น เนื่องจาก SoapClient จะต้องมีคลาสแมปของ WSDL เป็นคลาส PHP จึงมีตัวสร้างคลาสแมปให้ใช้งานด้วย นี่จะช่วยคุณประหยัดเวลาได้มากอย่างแน่นอน! ด้วยการเพิ่มตัวแปลงประเภท SOAP คุณสามารถแปลงค่าของประเภท SOAP เฉพาะจาก/เป็นประเภท PHP ได้ แพคเกจนี้มาพร้อมกับหม้อแปลงพื้นฐานสำหรับวันที่และเวลา ยิ่งไปกว่านั้น มันง่ายมากที่จะสร้างหม้อแปลงของคุณเอง
ปัญหาอีกประการหนึ่งคือ SoapClient ดั้งเดิมทำงานร่วมกับวิธีการมหัศจรรย์มากมาย เป็นการยากที่จะแก้ไขวิธีการมหัศจรรย์เหล่านี้ ดังนั้นจึงไม่มีการเขียนโค้ดให้สมบูรณ์ ทั้ง SOAP และวิธีการใช้งานอยู่บนวัตถุเดียวกัน
แพ็คเกจนี้จะบังคับให้คุณรวม SoapClient เข้ากับไคลเอนต์ของคุณเอง คุณสามารถเลือกที่จะเปิดเผยวิธีการที่คุณต้องการเท่านั้น นักพัฒนาจะชัดเจนเสมอว่ามีอะไรอยู่ในไคลเอนต์ของคุณ มันทำงานอย่างไร และส่งคืนอะไร เรายังจัดเตรียมไคลเอ็นต์พื้นฐานไว้ให้คุณใช้กับวิธีการทั่วไปที่ใช้สำหรับการดีบัก การรับรองความถูกต้อง และระบบเหตุการณ์
ในการบูรณาการ SOAP จำนวนมาก การบันทึก การแคช และการเรียก Soap อยู่ในวิธีการเดียวกัน สิ่งนี้ทำให้โค้ดของคุณอ่านยากและขึ้นอยู่กับคลาส / แพ็คเกจอื่น
การสร้างไคลเอนต์ OO SOAP ที่ยอดเยี่ยมหมายความว่าคุณจะต้องสร้างโค้ดจำนวนมาก นี่อาจเป็นงานที่น่าเบื่อซึ่งสามารถทำให้เป็นอัตโนมัติได้ นั่นคือเหตุผลที่เราได้เพิ่มเครื่องมือเพื่อสร้างออบเจ็กต์ SOAP โดยอัตโนมัติจากรูปแบบ XSD ภายใน WSDL คุณยังสามารถระบุกฎการสร้างโค้ดและแอสเซมเบลอร์โค้ดของคุณเอง หรือใช้คลาสในตัวที่มีอยู่มากมายของเราได้
สิ่งสำคัญคือต้องรักษาโค้ดของคุณให้สะอาด ดังนั้นเราจึงเพิ่มผู้ฟังเหตุการณ์ให้กับไคลเอนต์ Soap ของคุณ คุณสามารถมีส่วนร่วมกับทุกขั้นตอนสำคัญของโฟลว์ SOAP วิธีนี้ทำให้สามารถเพิ่มการบันทึก การตรวจสอบความถูกต้อง และการจัดการข้อผิดพลาดกับสมาชิกเหตุการณ์ได้ สวยเท่ใช่มั้ยล่ะ!
การใช้ส่วนขยาย SOAP เป็นเรื่องที่น่าปวดหัวอย่างยิ่ง โดยบังคับให้คุณเขียนทับวิธีการหลักของไคลเอนต์ SOAP ในตัว หากคุณเคยต้องใช้ WSA หรือ WSSE ใน SOAP คุณจะรู้ว่ามีบางอย่างผิดปกติในแกนกลาง ดังนั้นเราจึงทำให้มันง่ายสำหรับคุณที่จะขยายไคลเอนต์ SOAP ของเรา คุณสามารถระบุตัวจัดการการถ่ายโอนข้อมูลได้ เช่น Guzzle ที่คุณต้องการใช้ คุณสามารถเพิ่มการรองรับส่วนขยาย SOAP หรือการตรวจสอบสิทธิ์ขั้นสูงผ่านมิดเดิลแวร์ HTTP ได้อย่างง่ายดาย ทั้งนี้ขึ้นอยู่กับตัวจัดการที่เลือก
การจัดการกับ ext-soap ไม่ใช่สำหรับนักพัฒนาทุกคน มีนิสัยใจคอที่น่ารังเกียจบางอย่างที่คุณต้องรู้ ดังนั้นเราจึงทำให้คุณสามารถใช้ไดรเวอร์ตัวใดก็ได้ที่คุณต้องการใช้ ตามค่าเริ่มต้น เราจะยังคงจัดส่งไดรเวอร์ ext-soap ไว้ แต่จะเป็นการเลือกรับโดยสมบูรณ์ คุณสามารถใช้การใช้งาน SoapClient ของผู้ใช้ที่ดินได้ หากคุณรวมไว้ในอินเทอร์เฟซไดรเวอร์ของเราเอง
การทดสอบบริการเว็บเป็นเรื่องยาก! แพ็คเกจนี้มีวิธีทดสอบบริการ SOAP หลายวิธี เนื่องจากการขนส่งเป็นแบบ HTTP คุณจึงสามารถใช้ php-vcr
ได้ หากคุณไม่ต้องการทำการเรียก HTTP จริง คุณสามารถใช้ Transport
หรือ Caller
แบบกำหนดเองในกรณีทดสอบของคุณได้ การทดสอบไคลเอ็นต์ SOAP ของคุณจะรวดเร็วมากและไม่มีข้อผิดพลาดใดๆ ในฝั่งบุคคลที่สามของการผสานรวม
สุดท้ายแต่ไม่ท้ายสุด เราต้องการทำให้การกำหนดค่า SoapClient ของคุณเป็นเรื่องง่ายสำหรับคุณ นั่นคือเหตุผลที่เรารวม ClientFactory ที่สร้างขึ้นซึ่งคุณสามารถกำหนดค่าไคลเอนต์ที่คุณกำหนดเองได้ คุณต้องการตั้งค่าอื่นๆ ในระหว่างการพัฒนาและในการใช้งานจริงหรือไม่? ไม่มีปัญหา! นั่งลงและปล่อยให้โรงงานจัดการการเริ่มต้นไคลเอ็นต์ของคุณ