Un service.wsdl local aínda pode facer que SoapClient obteña documentos remotos durante a construción. Facer local o primeiro ficheiro só elimina esa primeira descarga:

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

Comece pola primeira obtención fallida, antes da primeira chamada de negocio SOAP. Enumere cada importación de WSDL e cada localización de esquema, incluídos os documentos aos que estes remiten á súa vez. Conserve o URL base ou a ruta usada para resolver cada referencia relativa. Separe os hosts internos dos recursos que realmente necesitan o proxy externo.

Un proxy de SoapClient explícito pode enviar un esquema interno a través dun intermediario cunha vista DNS ou unha política de acceso distintas. Unha variable no_proxy a nivel de proceso non demostra que esta ruta de carga a lea. Use as opcións documentadas para a súa versión de PHP; nomear unha opción como unha variable de contorno non crea un selector por importación.

Para despregar as definicións por completo en local, obteña as versións aprobadas de todo o conxunto de dependencias, actualice as localizacións de importación aplicables ao paquete local e conserve as súas bases de rutas relativas. Versione eses documentos en conxunto para que un novo WSDL raíz non use tipos obsoletos.

Non toque os identificadores de espazo de nomes. Poden parecer URL, pero identifican o vocabulario do esquema en lugar de indicar ao cargador de onde obter un ficheiro. Substituílos pode cambiar o contrato do servizo.

Volva probar a construción co estado da caché rexistrado: as definicións en caché poden ocultar unha dependencia que falta nunha máquina. A substitución do URL do servizo aplícase nunha etapa posterior, e un __doRequest() personalizado xestiona o intercambio SOAP; non debe supoñerse que ningún dos dous reescriba ou intercepte todas as descargas de esquema en tempo de construción.

Artigos relacionados