Nahradenie služby v kontajnery

ajax770
Člen | 2
+
+1
-

Zdravím,

ako by ste riešili situáciu, keď potrebujete nahradiť nejakú službu, ktorá je registrovaná v rámci rozšírenia inou službou, ktorá je registrovaná v rámci aplikácie?

V rámci neon konfigurácie predpokladám niečo podobné nie je možné? Definovať službu pod menom už existujúcej služby samozrejme nejde.

Dá sa niečo podobné nejako čisto riešiť? Ešte ma napadlo riešenie, že by som proste tú službu odstránil z kontajnera cez metódu removeService(‚nazov_sluzby‘) a nasledne novu službu definoval pod rovnakým menom, ale nepríde mi to úplne ok.

Marek Bartoš
Nette Blogger | 1165
+
+2
-

Definovať službu pod menom už existujúcej služby samozrejme nejde.

A zkoušel jsi to? Je třeba dodržet pořadí načítání, ale přepsání služby funguje.
CompilerExtension::loadConfiguration() → konfigurační soubory → CompilerExtension::beforeCompile()

ajax770
Člen | 2
+
0
-

Díky za skorú odpoveď :) a hej máš pravdu s tým poradím.

Len problém je že to rozšírenie pridáva tie služby cez
beforeCompile(), takže preto to „kričí“, keď to v konfiguračnom súbore aplikácií prepíšem. Každopádne už to nepotrebujem (poradil som si inak), ale fajn vedieť :).

Ako pozerám v dokumentácií, tak tam je to tiež spomenuté, že sa služby majú pridávať cez beforeCompile().

Len ma ešte napadá (možno by to niekoho zaujímalo) ako postupovať v prípade, že rozšírenie pridáva tú službu nie cez loadConfiguration() ale cez beforeCompile()