Можете ли вы использовать параметры из DIC в маршрутах? (Внедрение параметра метода)

StackOverflow https://stackoverflow.com/questions/7301303

Вопрос

У меня есть несколько сервисов, которые получают определенную тег в моем проекте Symfony2, которые я хотел бы использовать внутри контроллера.

В результате я пытаюсь выяснить, как лучший способ донести их до контроллера, и подумал, что, возможно, есть способ сделать это с общей системой конфигурации Symfony2.

#  Inside routing.yml:
my_controller:
  pattern: "/path"
  defaults {
      _controller: Bundle:Controller:action
      # The following line is kind of what I'm looking for.
      myParam: @my.tag
  }

# Inside a services.yml file:
my.service:
  class: Bundle\MyService
  tags:
      - { name: my.tag }
my.otherService:
  class: Bundle\MyOtherService
  tags:
      - { name: my.tag }

Учитывая два примера файла конфигурации выше, я бы хотел, чтобы мой экземпляр «Bundle: Controller: Action» получает массив, содержащий экземпляры «Bundle myservice» и «Bundle myotherservice».

Спасибо!

Это было полезно?

Решение

Это обсуждение групп Google привел к решению. Некоторые из API, однако, изменились. А именно:

  • Метод пакета, который вы переопределяете, - это build (), а не registerextensions ().
  • Метод расширения, который вы перегружаете, - это загрузка () не configload ().

Пока вы соответствующим образом перемещаете два блока кода и правильно его реализуете, вы сможете получить что -то вроде желаемой функциональности.

К сожалению, это никоим образом не автоматизировано DIC, но важно отметить, что у меня есть требование получить все конкретное тег. Не только от моего пакета, но и от каждого пакета, в конечном итоге, становясь частью приложения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top