هل سئمت من إنشاء تطبيقات 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 الحديث للأسباب التالية:
لحل المشاكل المذكورة أعلاه، ستجبرك هذه الحزمة على استخدام كائنات القيمة للطلبات والاستجابات. نحن نعلم أن الحفاظ على هذه الأشياء ذات القيمة يمكن أن يتطلب قدرًا كبيرًا من العمل. لا شكر على واجب! هناك بعض أدوات سطر الأوامر المتاحة التي ستساعدك في إنشاء قاعدة جيدة للبدء بها. نظرًا لأن 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 الذي تم إنشاؤه والذي يمكنك من خلاله تكوين عميلك المخصص. هل تريد بعض الإعدادات الأخرى أثناء التطوير والإنتاج؟ لا مشكلة! استرخ ودع المصنع يتعامل مع تهيئة العميل الخاص بك.