169 похожих чатов

Всем привет. У меня есть абстрактный класс. В нем создаю

клиент 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

11 ответов

11 просмотров

создавать что-либо внутри классов -- табу. Лучше передать через конструктор. Наследованием нужно пользоваться в ограниченных случаях, которые можно объяснить. Зачем тебе абстрактный класс? И что именно ты хочешь проверить? тестами или что-то другое

Max-K Автор вопроса

нужно сделать несколько классов-сервисов для запросов на 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)?

Max-K Автор вопроса

Хммм. Посмотрим. Может и так сделаю

Max-K Автор вопроса

Хммм))) Как вариант)

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта