Ένα τοπικό service.wsdl μπορεί ακόμη να κάνει το SoapClient να ανακτήσει απομακρυσμένα έγγραφα κατά την κατασκευή. Το να κάνετε το πρώτο αρχείο τοπικό αφαιρεί μόνο εκείνη την πρώτη λήψη:

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

Ξεκινήστε από την πρώτη αποτυχημένη ανάκτηση, πριν από την πρώτη επιχειρηματική κλήση SOAP. Καταγράψτε κάθε εισαγωγή WSDL και κάθε schema location, μαζί με τα έγγραφα στα οποία παραπέμπουν με τη σειρά τους. Διατηρήστε το βασικό URL ή τη διαδρομή που χρησιμοποιείται για την επίλυση κάθε σχετικής αναφοράς. Διαχωρίστε τους εσωτερικούς hosts από πόρους που πραγματικά χρειάζονται τον εξωτερικό proxy.

Ένα ρητό proxy του SoapClient μπορεί να στείλει ένα εσωτερικό schema μέσω μεσάζοντα με διαφορετική όψη DNS ή πολιτική πρόσβασης. Μια μεταβλητή no_proxy σε επίπεδο διεργασίας δεν αποδεικνύει ότι αυτή η διαδρομή φόρτωσης τη διαβάζει. Χρησιμοποιήστε τις τεκμηριωμένες επιλογές για την έκδοση PHP σας· το να ονομάσετε μια επιλογή όπως μια μεταβλητή περιβάλλοντος δεν δημιουργεί επιλογέα ανά εισαγωγή.

Για να αναπτύξετε τους ορισμούς εξ ολοκλήρου τοπικά, προμηθευτείτε τις εγκεκριμένες εκδόσεις ολόκληρου του συνόλου εξαρτήσεων, ενημερώστε τις σχετικές θέσεις εισαγωγής στο τοπικό πακέτο και διατηρήστε τις βάσεις σχετικών διαδρομών τους. Διαχειριστείτε εκδόσεις αυτών των εγγράφων μαζί ώστε ένα νέο ριζικό WSDL να μη χρησιμοποιεί παρωχημένους τύπους.

Αφήστε τα αναγνωριστικά namespace ήσυχα. Μπορεί να μοιάζουν με URL, αλλά προσδιορίζουν το λεξιλόγιο του schema αντί να λένε στον φορτωτή από πού να ανακτήσει ένα αρχείο. Η αντικατάστασή τους μπορεί να αλλάξει το συμβόλαιο της υπηρεσίας.

Δοκιμάστε ξανά την κατασκευή με καταγεγραμμένη την κατάσταση της cache: οι αποθηκευμένοι ορισμοί μπορούν να κρύψουν μια εξάρτηση που λείπει σε ένα μηχάνημα. Μια παράκαμψη του URL υπηρεσίας ισχύει σε μεταγενέστερο στάδιο, και ένα προσαρμοσμένο __doRequest() χειρίζεται την ανταλλαγή SOAP· κανένα από τα δύο δεν πρέπει να υποτεθεί ότι ξαναγράφει ή υποκλέπτει όλες τις λήψεις schema κατά την κατασκευή.

Σχετικά άρθρα