Një service.wsdl lokal mund të bëjë që SoapClient të marrë dokumente të largëta gjatë ndërtimit. Bërja lokale e skedarit të parë heq vetëm atë shkarkimin e parë:

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

Filloni nga marrja e parë e dështuar, përpara thirrjes së parë biznesore SOAP. Listoni çdo import WSDL dhe çdo schema location, duke përfshirë dokumentet të cilave ato u referohen nga ana e tyre. Ruani URL-në bazë ose shtegun e përdorur për të zgjidhur çdo referencë relative. Ndani hostet e brendshme nga burimet që kanë vërtet nevojë për proxy-n e jashtëm.

Një proxy SoapClient i qartë mund të dërgojë një schema të brendshme përmes një ndërmjetësi me pamje DNS ose politikë aksesi të ndryshme. Një variabël no_proxy në nivel procesi nuk vërteton që kjo rrugë ngarkimi e lexon atë. Përdorni opsionet e dokumentuara për versionin tuaj të PHP; emërtimi i një opsioni sipas një variabli mjedisi nuk krijon një përzgjedhës për çdo import.

Për t'i vendosur përkufizimet plotësisht lokalisht, merrni versionet e miratuara të të gjithë grupit të varësive, përditësoni vendndodhjet e importit përkatëse në paketën lokale dhe ruani bazat e shtigjeve relative të tyre. Versiononi bashkë ato dokumente, që një WSDL rrënjë i ri të mos përdorë tipe të vjetruara.

Mos i prekni identifikuesit e namespace. Mund të duken si URL, por identifikojnë fjalorin e schema-s në vend që t'i thonë ngarkuesit se ku ta marrë një skedar. Zëvendësimi i tyre mund të ndryshojë kontratën e shërbimit.

Ritestoni ndërtimin me gjendjen e cache-s të regjistruar: përkufizimet e ruajtura mund të fshehin një varësi që mungon në një makinë. Anashkalimi i URL-së së shërbimit zbatohet në një fazë të mëvonshme, dhe një __doRequest() i personalizuar merret me shkëmbimin SOAP; për asnjërën nuk duhet të supozohet se rishkruan ose ndërpresin të gjitha shkarkimet e schema-s në kohën e ndërtimit.

Artikuj të ngjashëm