В Symfony и Laravel контейнер доступен в виде зависимости. Но, например, в Symfony оооочень сильно отговаривают от любого использования контейнера в клиентском коде, потому что код мгновенно начинает источать запах:
1. Антипаттерн Service Locator: Внедрение контейнера может привести к скрытым зависимостям
2. Нарушение принципа инверсии зависимостей: Классы становятся зависимыми от контейнера
3. Усложнение тестирования: Нужно мокать весь контейнер
Но иногда, когда, например, динамическое внедрение зависимостей в каком-то конкретном месте вам необходимо, как воздух, то контейнер может помочь.
Поэтому тут надо просто использовать разумный подход:
1. Никогда не внедряем в свой код контейнер в виде зависимости в качестве первого решения проблемы.
2. Если проблема всё же не позволяет обойтись любыми другими средствами, то только тогда внедряем контейнер и очень хорошо документируем причину такого выбора и весь код класса. Потому что это обычно что-то хитрое, что забудется через месяц, и потом будет тяжко возвращаться к этому коду.
Итого: пусть будет на очень крайний случай