Я работаю над приложением на основе Symfony 2.7.
Я хочу внедрить службу Doctrine в свой контроллер и передать ее как конструктор службы, чтобы не полагаться на весь контейнер. Поэтому я поместил в свой файл services.yml следующее:
app.controller.document_duplicate:
class: MyCompany\CmsBundle\Controller\DocumentDuplicateController
arguments:
- "@doctrine"
... и я поместил в свой класс контроллера следующее:
public function __construct($doctrine)
{
$this->doctrine = $doctrine;
}
... который ведет себя не так, как я ожидал. Когда я просматриваю контроллер в браузере, я получаю исключение:
Warning: Missing argument 1 for MyCompany\CmsBundle\Controller\DocumentDuplicateController::__construct(), called in /usr/src/app/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Controller/ControllerResolver.php on line 194 and defined
Что мне нужно исправить, чтобы позволить контроллеру видеть службу, которую я пытаюсь передать ему?






Оказалось, что мне просто пришлось поместить эту аннотацию над определением моего класса, чтобы заставить его обратить внимание на содержимое файла services.yml:
/**
* @Route(service = "app.controller.document_duplicate")
*/
Это помогло.