Я столкнулся с этим, когда задал тот же вопрос во время просмотра обучающего видео по Symfony 4. (Я также сделал удар в вашей реальной проблеме там .)
Из того, что яможно увидеть код, вам не нужно нужно , чтобы использовать более новый класс ServiceEntityRepository, но это улучшение.Все, что он делает, это оборачивает класс EntityRepository модифицированным конструктором, заставляя аргументы, которые вам нужно передать, немного дружелюбнее для разработчика, и пользуясь преимуществами автопроводки.
В качестве примера я вручную подключил свойпользовательские репозитории (расширяющие EntityRepository ) в Symfony версии 3 с кодом, подобным этому, в моем services.yml файле:
Fully\Qualified\Namespace\MyCustomRepository:
factory: ["@doctrine.orm.entity_manager", getRepository]
arguments: [Fully\Qualified\Namespace\Entity\MyEntity]
С более новым ServiceEntityRepository *У класса 1017 * и расширенной автоматической проводки версии 4 я могу исключить все эти задания ручной проводки, и пусть Служебный контейнер выполнит эту работу.