Задать вопрос
@springimport

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

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

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

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

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

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