клиент Guzzle. От абстрактного класса наследуюсь и в наследнике делаю запрос. Хочу проверить base_url моего газл клиента. Как это сделать?
Вот так в абстркном классе в конструкторе делаю клиент газла:
$this->http = new Client([
'base_uri' => $this->getBaseUri(),
'verify' => false,
'auth' => [$this->authUser, $this->authPass],
'headers' => [
'Accept' => 'Content-Type: text/xml;charset=UTF-8',
],
'http_errors' => false,
]);
Метод getBaseUrl реализован в наследнике. Хочу убедится что он ставит правильный URL
создавать что-либо внутри классов -- табу. Лучше передать через конструктор. Наследованием нужно пользоваться в ограниченных случаях, которые можно объяснить. Зачем тебе абстрактный класс? И что именно ты хочешь проверить? тестами или что-то другое
нужно сделать несколько классов-сервисов для запросов на SoapApi. Хочу эти запросы разделить на разные классы, чтобы сгрупировать их красивше. Нюанс в том, что у разных этих классов URL запроса будет разный. Хочу этот URL настраивать в потомке, а создавать сам клиеент газла из родителя. Но надо как-то из потомка родителю передать base_url
Тестить будет сложно, не замокаешь клиент
Почему бы не взять готовые либы для работы с SOAP?
А почему не сгруппировать несколько классов но без наследования. Например: $client = new SoapClient(new GuzzleTransport()); $client->commonApi()->callFunctionX(); $client->specificApi()->callFunctionY(); ?
Так тебе нужно не наследоваться от базового класса в котором есть клиент газла, а создать на каждый запрос отельный класс и передавать туда клиент газла.
А вы точно СТО?
Или $client1 = new SoapClient(new GuzzleTransport(‘baseurl1’)); $client2 = new SoapClient(new GuzzleTransport(‘baseur2’)); $client->callFunctionX(); $client->callFunctionY(); @altrecipe
Мб наследнике проверить свойство http var_dump($this->http)?
Хммм. Посмотрим. Может и так сделаю
Хммм))) Как вариант)
Обсуждают сегодня