DIExtensions tag run v Nette 3

Kajda23
Člen | 41
+
0
-

Ahoj,
podle changelogu – DIExtension: tag ‘run’ is deprecated (BC break).

A logicky se to tak chová:
Tag ‚run‘ used in service ‚dibi.static.connection‘ definition is deprecated.

Jako relikt minulosti mám v aplikaci staticky spouštěné dibi (postupně se toho zbavuji). Zajímá mě nějaká náhrada, jak spustit službu přímo v Nette 3?

Do v2.4 mi fungovalo:

services:
	dibi.static.connection:
		class: Dibi\Connection
		create: dibi::connect(%dibi%)
		autowired: false
		tags:
			run: true

Díky za pomoc!

Marek Bartoš
Nette Blogger | 1146
+
0
-

V CompilerExtension::afterCompile() přidáš do initialize() metody kontejneru volání služby
https://github.com/…xtension.php#…

David Grudl
Nette Core | 8082
+
0
-

Nejjednodušší je určitě po vytvoření kontejneru nad ním zavolat $container->getByType('Dibi\Connection');.

Kajda23
Člen | 41
+
0
-

Davidova možnost mě napadla, ale myslel jsem, že to je řešitelné přímo v konfigu. Nejde-li jinak, udělám to tak. Díky oběma.