Чувак. Любой код (библиотека, пакет, функция) - есть некое обещание его производителя выполнить что-то ценное для тебя. Это описание должно давать название класса и его метода, который этот результат создаст. А дальше - это уже не твои проблемы как там внутри все устроено. Ты создаёшь объект, даёшь ему то, от чего он зависит, и вызываешь у этого объекта метод. Все!
Представь телевизор. Его производитель обещает дать тебе возможность смотреть телеканалы, если ты подключишь антенну. Какая твоя задача как пользователя телевизора? Правильно! Вставить антенну и нажать на кнопку включения. Ты ведь не будешь залазить внутрь телевизора с тестером, и проверять как же там все устроено. Описание должно тебе сказать где кнопка включения.
Если ты используешь пакет (модуль, библиотеку), в которой это непонятно сразу - то это не твоя проблема, а того производителя которые его создал. Просто лучше, вероятно, ничего не придумали, и приходится либо создавать самому, либо пользоваться таким Г...
Код должен быть примерно такой:
$tv = new Tv(new Antena);
$content = $tv->on();
Это и есть ООП.