Это распространенное заблуждение:
Не каждый класс, который вы используете в TYPO3 CMS, использует внедрение зависимостей по умолчанию - и это хорошо.
Что верно, так это то, что каждый объект, экземпляр которого был создан ObjectManager, может извлечь из этого пользу.
Короче говоря: если вы new Thing()
какой-то объект, он не получит выгоду от внедрения зависимости. Если вы используете ObjectManager
, чтобы получить экземпляр чего-либо, весь ваш опыт внедрения зависимостей будет падать на ваш новый экземпляр:
Обратите внимание, что объектный администратор создает экземпляры внедренных объектов, так что рекурсия возможна, если для инъекций ServiceA
требуется ввод ServiceB
.
Синглеты также возможны, если вы реализуете интерфейс маркера SingletonInterface
.