конструкторе обязательно должны быть переменные $walletId и $password, так как потом они во всех методах классах используются, и эти данные нужно передавать при создании нового класса. Проблема в том, что хочу заинжектить SerializeInterface $serialize, но потом, при создании класса конечно же нужно будет передавать этот объект третьим аргументом, чего я делать крайне не хочу. Пришла в голову только такая идея, которую выделил на скрине, мне не нравится, как это выглядит, но пока других идей у меня нет. Есть ли какой-то вариант получше, для решения этой проблемы? Заранее спасибо.
Скриншот не могу загрузить, поэтому ссылка:
https://ibb.co/4JkLP10
Или я с просонья такой тупой, или ты прям вообще нифига не понятно написал
Никто не тупой :) Я пишу API клиент для одного сервиса. Ответ приходит в JSON, а я не хочу просто передавать чистый массив из Response, а хочу преобразовать его в объект через Serializer. Мой клиент объявляется следующим образом: new WalletAPI($walletId, $password). Так вот, в моем файле клиента нужно в каждом методе делать следующее, перед тем как дать юзеру готовый объект (вместо массива или из API): $serializer = SerializerBuilder::create()->build(); $serializer->deserialize($$response->toArray()); Мне не нравится, как это выглядит, поэтому я хотел объявить SerializeInterface в конструкторе, чтобы не писать лишнюю строчку кода в каждом методе, чтобы можно было вызвать метод так: $this->serializer->deserialize($$response->toArray()); Но если делать так, то юзеру придётся вместе с инициализацией класса WalletAPI передавать в конструктор третий аргумент Serialize, что неправильно. Вот, ищу способ, как это можно обойти... Извиняюсь, если непонятно написал. Использую этот Serialize: https://jmsyst.com/libs/serializer
Да теперь все понятно
Обсуждают сегодня