Vychozí nastavení inject pro služby
- vasam
- Člen | 26
Zdravím,
jak lze změnit výchozí nastavení inject v configu z no/false na yes/true
u služeb?
Vím, že to jde přes CompilerExtension, kde natvrdo projdu všechny definice a
nastavím inject. Ale tím pak už to v configu nezměním u některých
služeb zpět na „no“, pokud by bylo potřeba.
Lze nějak docílit, abych měl pořád možnost v configu inject vypnout?
- Šaman
- Člen | 2665
Já ano. Občas potřebuji do všech komponent dostat nějakou závislost,
naposledu když jsem zkoušel psát komponentu bez použití
$this->presenter->…
a chtěl jsem AJAX, tak jsem
potřeboval injectovat Request. V base komponentě. Zjistil jsem, že buď se
nevyhnu tupému předávání parametrů parent konstruktoru, nebo si musím
vynutit injectování, nebo jsem se na to vyprd a prostě používám ošklivý
$this->presenter…
Mimochodem argument, který platil při vytvoření inject metod, tedy že presentery jsou opuchlé hromádky kódu s mnoha závislostmi už taky neplatí. Aktuálně má Nette\..\Presenter jedinou závislost. Tak proč se u něj toleruje i velmi nepěkná property injection a všude jinde se i method injection démonizuje?