Всем привет, может кто помочь разобраться с интерфейсоми и DI контейнероми?
Вот взять например тот же самый knp_pagination bundle. Инжектим интерфейс, передаём параметры. И готово. Такой сложный механизм как пагинация работает без проблем. Вот этой магии мне не понять. Я думал что интерфейсы работаю как инструкция. Там стоят методы которые нужно заполнить кодом. И вернуть что-то. А тут как-то передал параметры и всё...
так оно так и работает, в DI указываешь интерфейс и соответствующий класс, который вместо него будет подставлять DI в коде, там где указан этот интерфейс.
Можете почитать про DI контейнер без строгой привязки к symfony - про инверсию зависимостей, сопоставление интерфейсов и их реализаций для контейнера, создание и передачу экземпляра объекта вызываемому методу. Это все есть, просто глубоко зарыто
symnoob, эту статью прочесть (примеры кода малость устарели, как я поняла), доку по контейнеру в симфе, ну и ручками понаставлять брейкпоинты по контейнеру, посмотреть как и где код обрабатывается (я так с ларавелем разбиралась)