Почему ООП в современных фреймворках такое замудрёное? - Узнаем за 4 шага:
1. простой нетестируемый код
2. идеи внедрения зависимостей
3. пример тестируемости, когда есть di
4. муки ручной передачи зависимостей и идеи php Reflection
Не пропустите новогоднюю акцию - https://newyear.dmitrylavrik.ru/