Получить Учение или пройти службу без использования __construct – Symfony2

Я пытаюсь расширить класс, но у меня есть эта проблема:

(1) Мне нужно выполнить простой запрос к базе данных, но если я передам в @ doctrine.orm.entity_manager в services.yml, то мне нужно передать нагрузку других значений и вызвать parent :: __ construct (для родительского класса) и я просто не могу заставить его работать (другой вопрос существует для этого, но не повезло).

(2) Если я не создаю __construct в моем новом расширенном классе, то он работает, но я не могу получить доступ к выполнению запроса БД.

Есть ли способ получить доступ к Доктрине, выполнить запрос, передать в @ doctrine.orm.entity_manager или что-то еще, чтобы я мог выполнить этот запрос без необходимости называть конструкцию _ в моем новом расширенном классе (и не пропускать все эти переменные, чтобы затем вызвать родительский :: _construct, который вызывает такую ​​проблему).

Поскольку я пытался сделать это в течение 2 дней, тогда я возьму любой взлом, если придется (желательно не слишком много взлома, но мне может понадобиться, если я не смогу сделать это в ближайшее время). На сегодняшний день я никогда не прибегал к взлому Symfony2, поэтому для меня это не является обычным явлением. Благодарю.

Вы можете использовать инъекцию setter, если вы не хотите вводить аргументы в конструктор.

Конфигурация сервиса

my_service: class: YourClass calls: - [setEntityManager, ["@doctrine.orm.entity_manager"]] 

Твой класс

 use Doctrine\Common\Persistence\ObjectManager; // ... protected $em; public function setEntityManager(ObjectManager $em) { $this->em = $em; } public function someOtherFunction() { $this->em->getRepository('...') } 

Вы хотите взломать? Ну вот:

  $kernel = $GLOBALS['kernel']; $em = $kernel->getContainer()->get('doctrine.orm.entity_manager'); die(get_class($em));