Я работаю над использованием API веб-сервисов, предлагаемых хостами нашей внутренней системы. Я получаю к нему доступ через PHP с помощью встроенного SOAP-предложения.
Сеанс API инициируется удаленным вызовом функции, которая возвращает некоторые токены сеанса; каждый последующий вызов любой функции будет возвращать новый маркер сеанса, который должен сопровождать следующий запрос.
У меня есть клиентский класс API, который выполняет основную часть работы; то, что я хотел бы сделать, - это настроить что-нибудь, с помощью которого любой сделанный вызов SOAP обязательно обновит переменную $ session класса API-клиента новыми деталями сеанса, а затем передаст данные.
Пока единственный способ, которым я могу думать об этом, - это создать новый класс, расширяющий класс SoapClient, с помощью обертки функции __call для выполнения функции, обновления нового токена сеанса и, тем не менее, возврата результатов. Я не уверен, что это будет а) работать б) будет лучшим способом сделать это. Класс-оболочка будет идентичен вызову SOAP и будет возвращать идентичный результат, просто он обновит маркер сеанса, прежде чем вы вернете свой результат.