Lokálny WSDL môže stále poslať SoapClient do siete
Sledujte tranzitívne importy WSDL a XML Schema, keď lokálna definícia služby stále mieša interné a externé proxy trasy.
Lokálny service.wsdl môže stále spôsobiť, že SoapClient pri zostavovaní stiahne vzdialené dokumenty. Zlokalizovanie prvého súboru odstráni len to prvé stiahnutie:
local service.wsdl
→ internal Common.xsd
→ external Types.xsd
→ another schema location
Začnite pri prvom neúspešnom načítaní, pred prvým obchodným volaním SOAP. Vypíšte každý import WSDL a každé umiestnenie schémy vrátane dokumentov, na ktoré zase odkazujú. Zachovajte základnú URL alebo cestu použitú na vyriešenie každého relatívneho odkazu. Oddeľte interné hostiteľe od zdrojov, ktoré skutočne potrebujú externý proxy.
Explicitný proxy SoapClient môže poslať internú schému cez sprostredkovateľa s iným pohľadom na DNS alebo inou prístupovou politikou. Premenná no_proxy na úrovni procesu nedokazuje, že ju táto cesta načítavania číta. Použite možnosti dokumentované pre vašu verziu PHP; pomenovanie možnosti podľa premennej prostredia nevytvára selektor pre každý import.
Ak chcete definície nasadiť úplne lokálne, získajte schválené verzie celej sady závislostí, aktualizujte príslušné miesta importu na lokálny balík a zachovajte ich základy relatívnych ciest. Verzionujte tieto dokumenty spoločne, aby nový koreňový WSDL nepoužíval zastarané typy.
Nesiahajte na identifikátory menných priestorov. Môžu vyzerať ako URL, ale určujú slovník schémy namiesto toho, aby načítaču povedali, odkiaľ má súbor získať. Ich nahradenie môže zmeniť kontrakt služby.
Znovu otestujte zostavenie so zaznamenaným stavom medzipamäte: uložené definície môžu na jednom stroji skryť chýbajúcu závislosť. Prepísanie URL služby platí pre neskoršiu fázu a vlastný __doRequest() zabezpečuje výmenu SOAP; pri žiadnom z nich nemožno predpokladať, že prepisuje alebo zachytáva všetky sťahovania schém pri zostavovaní.