قد يُبقي ملف WSDL محلي SoapClient متصلاً بالشبكة
تتبَّع عمليات استيراد WSDL وXML Schema غير المباشرة حين يخلط تعريف خدمة محلي بين مسارات وكيل داخلية وخارجية.
قد يتسبب ملف service.wsdl محلي في أن يجلب SoapClient مستندات بعيدة أثناء الإنشاء. وجعل الملف الأول محليًا يزيل ذلك التنزيل الأول فقط:
local service.wsdl
→ internal Common.xsd
→ external Types.xsd
→ another schema location
ابدأ من أول عملية جلب فاشلة، قبل أول نداء SOAP تجاري. اسرد كل استيراد WSDL وكل موقع schema، بما في ذلك المستندات التي تشير إليها بدورها. واحتفظ بعنوان URL الأساسي أو المسار المستخدم لحل كل مرجع نسبي. وافصل المضيفين الداخليين عن الموارد التي تحتاج فعلاً إلى الوكيل الخارجي.
يمكن لـ وكيل SoapClient الصريح أن يمرر schema داخليًا عبر وسيط يرى DNS مختلفًا أو يتبع سياسة وصول مختلفة. ولا يثبت متغير no_proxy على مستوى العملية أن مسار التحميل هذا يقرأه. استخدم الخيارات الموثقة لإصدار PHP لديك؛ فتسمية خيار باسم متغير بيئة لا تُنشئ محدِّدًا لكل استيراد.
لنشر التعريفات محليًا بالكامل، احصل على الإصدارات المعتمدة لمجموعة التبعيات كاملة، وحدّث مواقع الاستيراد المعنية إلى الحزمة المحلية، واحفظ أسس مساراتها النسبية. وأصدِر تلك المستندات معًا حتى لا يستخدم WSDL الجذري الجديد أنواعًا قديمة.
اترك معرّفات namespace كما هي. قد تبدو كعناوين URL، لكنها تحدد مفردات schema بدل أن تخبر المحمّل من أين يجلب الملف. واستبدالها قد يغيّر عقد الخدمة.
أعد اختبار الإنشاء مع تسجيل حالة الذاكرة المؤقتة: فالتعريفات المخزّنة قد تخفي تبعية ناقصة على جهاز واحد. تجاوز عنوان URL للخدمة يخص مرحلة لاحقة، و__doRequest() المخصص يتولى تبادل SOAP؛ ولا ينبغي افتراض أن أيًّا منهما يعيد كتابة أو يعترض كل تنزيلات schema وقت الإنشاء.