Pouvez-vous utiliser des paramètres de la DIC dans les routes? (Injection de paramètre de procédé)

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

Question

J'ai des services qui sont touchés avec une certaine étiquette dans mon projet Symfony2 que je voudrais utiliser à l'intérieur d'un contrôleur.

En conséquence, je suis en train de trouver la meilleure façon de les faire passer au contrôleur, et pensé que peut-être il y a une façon de le faire avec le système de configuration globale de 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 }

Étant donné les deux exemples de fichiers de configuration ci-dessus, je voudrais tellement que mon exemple de « Bundle: Contrôleur: action » reçoit un tableau contenant les instances de « Bundle \ MyService » et « Bundle \ MyOtherService »

.

Merci!

Était-ce utile?

La solution

Cette discussion sur les groupes Google a donné lieu à une solution . Une partie de l'API a cependant changé. A savoir:

  • La méthode bundle vous Override build (), non registerExtensions ().
  • La méthode d'extension vous est surcharge load () non configLoad ().

Tant que vous vous déplacez les deux blocs de code en conséquence et mettre en œuvre correctement, vous devriez être en mesure d'obtenir quelque chose le long des lignes de la fonctionnalité que je veux.

Malheureusement, ce n'est en aucune façon automatisée par le DIC, mais il est important de noter que j'ai l'exigence d'obtenir tout d'une étiquette spécifique. Pas seulement de mon paquet, mais de chaque paquet devient finalement une partie de l'application.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top