Сервис-контейнер Symfony предоставляет множество функций для управления созданием объектов, позволяя вам указывать аргументы, передаваемые конструктору, а также вызывать методы и задавать параметры.
Однако иногда вам необходимо применить шаблон проектирования Фабрика, чтобы делегировать создание объекта какому-то специальному объекту, называемому «фабрика». В этих случаях сервисный контейнер может вызвать метод вашей фабрики, чтобы создать объект, а не напрямую создавать экземпляр класса.
Читать далее