WSDL cục bộ vẫn có thể đưa SoapClient ra mạng
Theo dõi các import WSDL và XML Schema bắc cầu khi định nghĩa dịch vụ cục bộ vẫn trộn các tuyến proxy nội bộ và bên ngoài.
Một service.wsdl cục bộ vẫn có thể khiến SoapClient tải tài liệu từ xa trong lúc khởi tạo. Việc đặt tệp đầu tiên ở cục bộ chỉ loại bỏ lần tải xuống đầu tiên đó:
local service.wsdl
→ internal Common.xsd
→ external Types.xsd
→ another schema location
Hãy bắt đầu từ lần truy xuất thất bại đầu tiên, trước lời gọi nghiệp vụ SOAP đầu tiên. Liệt kê mọi import WSDL và mọi schema location, kể cả những tài liệu mà chúng lần lượt tham chiếu. Giữ nguyên URL hoặc đường dẫn cơ sở dùng để phân giải từng tham chiếu tương đối. Tách các máy chủ nội bộ khỏi những tài nguyên thực sự cần proxy bên ngoài.
Một proxy SoapClient tường minh có thể gửi schema nội bộ qua một trung gian có góc nhìn DNS hoặc chính sách truy cập khác. Một biến no_proxy ở cấp tiến trình không chứng minh rằng đường tải này đọc nó. Hãy dùng các tùy chọn được ghi tài liệu cho phiên bản PHP của bạn; đặt tên tùy chọn theo một biến môi trường không tạo ra bộ chọn cho từng import.
Để triển khai định nghĩa hoàn toàn cục bộ, hãy lấy các phiên bản đã được phê duyệt của toàn bộ tập phụ thuộc, cập nhật các vị trí import liên quan sang gói cục bộ và giữ nguyên các gốc đường dẫn tương đối của chúng. Quản lý phiên bản các tài liệu đó cùng nhau để WSDL gốc mới không dùng kiểu lỗi thời.
Đừng động vào các định danh namespace. Chúng có thể trông giống URL, nhưng chúng xác định từ vựng schema chứ không cho bộ nạp biết lấy tệp từ đâu. Thay thế chúng có thể làm thay đổi hợp đồng dịch vụ.
Kiểm tra lại quá trình khởi tạo với trạng thái bộ nhớ đệm được ghi lại: các định nghĩa đã lưu đệm có thể che giấu một phụ thuộc bị thiếu trên một máy. Việc ghi đè URL dịch vụ áp dụng ở giai đoạn sau, và một __doRequest() tùy chỉnh xử lý trao đổi SOAP; không nên giả định rằng một trong hai sẽ viết lại hoặc chặn mọi lần tải schema khi khởi tạo.