ローカルな WSDL でも SoapClient はネットワークへ出る
ローカルなサービス定義が内部と外部の proxy 経路を混在させているときは、推移的な WSDL と XML Schema の import をたどってください。
ローカルの service.wsdl でも、構築中に SoapClient がリモートの文書を取得することがあります。最初のファイルをローカルにしても、消えるのはその最初のダウンロードだけです:
local service.wsdl
→ internal Common.xsd
→ external Types.xsd
→ another schema location
最初の SOAP 業務呼び出しの前に、最初に失敗した取得から始めてください。WSDL の import と schema location をすべて列挙し、それらがさらに参照する文書も含めます。相対参照を解決するために使われる基底 URL またはパスを記録しておきます。内部ホストと、本当に外部 proxy を必要とするリソースを分けてください。
明示的な SoapClient proxy は、DNS の見え方やアクセス ポリシーが異なる仲介者を通して内部 schema を送ることがあります。プロセス単位の no_proxy 変数は、この読み込み経路がそれを読むことを証明しません。お使いの PHP バージョンで文書化されているオプションを使ってください。環境変数にちなんでオプションを命名しても、import ごとの選択子にはなりません。
定義を完全にローカルに配置するには、依存関係一式の承認済みバージョンを入手し、該当する import の位置をローカル バンドルに更新し、相対パスの基底を保ってください。新しいルート WSDL が古い型を使わないよう、それらの文書はまとめてバージョン管理します。
namespace の識別子はそのままにしてください。URL に見えても、それは schema の語彙を識別するもので、ローダーにファイルの取得先を伝えるものではありません。置き換えるとサービスの契約が変わり得ます。
キャッシュの状態を記録したうえで構築を再テストしてください。キャッシュされた定義は、あるマシンでの依存関係の欠落を隠すことがあります。サービス URL の上書きは後の段階に適用され、独自の __doRequest() は SOAP のやり取りを扱います。どちらも構築時のすべての schema ダウンロードを書き換えたり横取りしたりするものと想定してはいけません。