Jak z DI kontejneru dostat všechny service s daným interface?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
pidiclovek
Člen | 91
+
0
-

Předpokládejme, že několik služeb má stejný interface, který implementuje. Jak by se pak z kontejneru dostaly jen tyto služby? getByType zde nestačí. Jak na to? Vlastní kontejner, nebo nějak jinak? Také mě napadlo využít tagy a vyhledávání services podle nich, nepřišel jsem ale na to, jak tagy přiřazovat.

Díky za nápady :)

Felix
Nette Core | 1245
+
0
-
Patrik Votoček
Člen | 2221
+
0
-

Za tímto účelem umí DIc tagy. Hledání podle interface ať koukám jak koukám asi nejde.

Více v dokumentaci

pekelnik
Člen | 462
+
0
-

Tagy se prirazuji jednoduse:

services:
	fooService:
		class: Foo
		factory: Foo::create
		tags: [ foo, bar ]
pidiclovek
Člen | 91
+
0
-

Díky všem, tagy se zdají být dobrou cestou.