ლოკალურ service.wsdl-ს მაინც შეუძლია SoapClient აიძულოს აგების დროს დისტანციური დოკუმენტები მოიტანოს. პირველი ფაილის ლოკალურად გაკეთება მხოლოდ იმ პირველ ჩამოტვირთვას აცილებს:

local service.wsdl
  → internal Common.xsd
  → external Types.xsd
       → another schema location

დაიწყეთ პირველი წარუმატებელი მოტანიდან, პირველ SOAP საქმიან გამოძახებამდე. ჩამოთვალეთ ყოველი WSDL იმპორტი და ყოველი schema location, მათ შორის ის დოკუმენტები, რომლებზეც ისინი თავის მხრივ მიუთითებენ. შეინახეთ საბაზისო URL ან გზა, რომელიც გამოიყენება ყოველი ფარდობითი მითითების გადასაწყვეტად. გამოყავით შიდა host-ები რესურსებისგან, რომლებსაც ნამდვილად სჭირდებათ გარე proxy.

გამოკვეთილი SoapClient proxy შეიძლება შიდა schema გაგზავნოს შუამავლის გავლით, რომელსაც განსხვავებული DNS ხედვა ან წვდომის პოლიტიკა აქვს. პროცესის დონის no_proxy ცვლადი არ ამტკიცებს, რომ ეს ჩატვირთვის გზა მას კითხულობს. გამოიყენეთ თქვენი PHP ვერსიისთვის დოკუმენტირებული პარამეტრები; პარამეტრის გარემოს ცვლადის სახელზე დარქმევა არ ქმნის არჩევანს თითოეული იმპორტისთვის.

განსაზღვრებების სრულად ლოკალურად განსათავსებლად მოიპოვეთ მთელი დამოკიდებულებათა ნაკრების დამტკიცებული ვერსიები, განაახლეთ შესაბამისი იმპორტის ადგილები ლოკალურ პაკეტზე და შეინარჩუნეთ მათი ფარდობითი გზის საფუძვლები. ერთად დააკვირდით ამ დოკუმენტების ვერსიებს, რათა ახალმა ძირეულმა WSDL-მა მოძველებული ტიპები არ გამოიყენოს.

ნუ შეეხებით namespace იდენტიფიკატორებს. ისინი URL-ებივით შეიძლება გამოიყურებოდეს, მაგრამ schema-ს ლექსიკას განსაზღვრავენ და არა ჩამტვირთველს ეუბნებიან, საიდან მოიტანოს ფაილი. მათი ჩანაცვლება შეიძლება სერვისის კონტრაქტი შეცვალოს.

თავიდან შეამოწმეთ აგება ქეშის მდგომარეობის ჩაწერით: ქეშირებულმა განსაზღვრებებმა შეიძლება დამალოს დაკარგული დამოკიდებულება ერთ მანქანაზე. სერვისის URL-ის გადაფარვა უფრო გვიან ეტაპზე მოქმედებს, ხოლო მორგებული __doRequest() SOAP გაცვლას ამუშავებს; არცერთისგან არ უნდა ვივარაუდოთ, რომ აგების დროს ყველა schema ჩამოტვირთვას გადაწერს ან ჩაჭრის.

დაკავშირებული სტატიები