Контейнер зависимостей Joomla хранит определения сервисов и предоставляет их коду по запросу. Он помогает собирать объекты с необходимыми зависимостями.
Как применяется внедрение зависимостей
Вместо создания всех вспомогательных объектов внутри класса нужные сервисы передают извне. Провайдеры сервисов регистрируют способы создания объектов в контейнере Joomla. Это делает зависимости явнее и облегчает подмену в тестах.
Контейнеры расширений
Расширение Joomla может использовать дочерний контейнер и собственные определения сервисов. Область регистрации, идентификатор сервиса и момент загрузки влияют на доступность объекта. Контейнер не проверяет автоматически все зависимости установочного пакета.
Используйте контейнер Joomla для построения сервисов, а не как произвольное хранилище данных пользователя. Проверяйте зависимости и жизненный цикл объектов.