Jak nejlepe (spravne) na appDir, wwwDir apod. v CompilerExtension

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

Ahoj,

narazil jsem na potrebu injectnout si do sluzeb promennou wwwDir. Sluzby apod mam v potomku CompilerExtension, ne v neon formatu.

Jedine funkcni reseni jsem nasel

$builder->addDefinition($this->prefix('imagePresenter'))
		->setType(ImagePresenter::class)
		->setArguments([$builder->expand('%wwwDir%')]);

ale zarazi me, ze expand je deprecated. Ve vlaknu starem cca 3 roky jsem nasel podobny dotaz, kde David psal krom toho pouzit na sluzby prave definici v neonu take to, ze expand sice deprecated je, ale bude v systemu jeste dlouho… no uz jsou to 3 roky, da se na to spolehat?

Existuje nejake jine reseni jak toto provest?

Editoval tomees (26. 9. 2017 20:52)

David Grudl
Nette Core | 8227
+
+5
-

Problém není v tom expand, ale spoléhání se na proměnné definované mimo rozšíření. Správné řešení je si tyto závislosti předat jako třeba tady https://github.com/…xtension.php#L44.

tomees
Člen | 59
+
0
-

David Grudl napsal(a):

Problém není v tom expand, ale spoléhání se na proměnné definované mimo rozšíření. Správné řešení je si tyto závislosti předat jako třeba tady https://github.com/…xtension.php#L44.

Super! Me nenapadlo ze vlastne muzu pri registraci extension pouzit konstruktor a predat si tam povinne parametry. Tak jsem zase chytrejsi.
Diky moc!