@springimport

Как вызывать расширенные классы?

Для работы с API Magento 2 сделал (сгенерировал) себе либу https://github.com/springimport/swagger-magento2-client Сам проект на yii2.
Возникла необходимость расширить базовые методы. Естественно что трогать код не хочется, поэтому расширение начал в "новом слое" - отдельных классах, наследованных от базовых в либе. В проекте теперь часть кода использует базовые классы, а часть - расширенные. Решил что пора использовать DI. В этом случае в проекте будет только зависимость на интерфейс. По умолчанию в либе нет интерфейсов и, наверное, придется генерировать их вручную и приписывать каждому классу. Но другого решения в не вижу.
Удовлетворяет ли такое расширение принципам SOLID и адекватности?
А если понадобится сделать кэширование методов, то прописываю кэширующий класс для интерфейса и все?
  • Вопрос задан
  • 181 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Fortop
Tech/Team lead
Вы можете для себя определить, что базовые классы библиотеки выступают для вас в роли интерфейсов, то есть нигде напрямую их не использовать.

В этом случае не нужно ничего генерировать и прописывать вручную.

Что касается вопроса оценки со стороны SOLID, то причём тут это?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект