Я читал о принципе инверсии зависимостей, и, насколько я понимаю, отношение инвертировано, потому что пакет A (высокий уровень) определяет интерфейс, а пакет B (низкий уровень) реализует интерфейс вместо прямого вызова класса в пакете. B.
Но как я могу применить принцип инверсии зависимостей, если у меня нет пакета B? Я использую PHP и через менеджер пакетов Composer импортирую некоторые сторонние библиотеки. Поскольку я не контролирую этот код, я не могу заставить классы в этой библиотеке реализовать мой высокоуровневый интерфейс.
Я искал в Google и Stackoverflow, но не могу найти вопросы или статьи которые упоминают этот вариант использования.