@springimport

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

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

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

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

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

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