Ještě chytřejší config (Dependency Injection)

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Filip Procházka
Moderator | 4668
+
0
-

Hodilo by se doplnění i jiných, než scalárních hodnot a taky pod-klíče (nevím jak to nazvat)

database:
	user: root
	pass: root
	host: localhost
...

services:
	database:
		class: myDatabaseClass
		arguments: ['%database%']

	database2:
		class: myOtherDatabaseClass
		arguments: ['%database[user]%', '%database[pass]%', '%database[host]%', ...]
...

Vím, že to lze řešit továrničkou, ale v configu je to víc cool :)

Nebo je to spíš RFC?

Jan Tvrdík
Nette guru | 2595
+
0
-

To co si napsal rozhodně RFC není.

Cifro
Člen | 245
+
0
-

Presne, v configu by to bolo über cool. Len sa mi zdá, že David nechce zavádzať ďalší meta jazyk, resp. keď už parametre v percentách, tak nie hranaté [] zatvorky ale bodky: %database.username%

Filip Procházka
Moderator | 4668
+
0
-

To co jsem napsal RFC rozhodně není Honzo, to máš pravdu. Ale mohlo by být ;)

//Edit: hranaté závorky nebo tečky, to je mi vcelku jedno.

Editoval HosipLan (20. 5. 2011 14:06)

srigi
Nette Blogger | 558
+
0
-

+1, toto som prave potreboval (len keby niekto mapoval zaujem :) ). Bodkova syntax sa mi paci viac.

Editoval srigi (30. 5. 2011 17:06)

Ginny
Člen | 36
+
0
-

+1 pro tečky

Filip Procházka
Moderator | 4668
+
0
-

Teď na to koukám trošku podrobněji a Davídek nám to dokonale zapouzdřil, takže se k tomu nejde dostat :) Musel bych zkopírovat celý ContainerBuilder a celou Configurator::loadConfig :-/

Edit: teď ani nevím, proč jsem to potřeboval měnit…

Kdyby někdo věděl jak elegantně vylepšit tu Container::expand(), tak šup sem s tím. Já si tady s tím lámu hlavu už hodinu. Né že bych nevěděl jak to ušít tak, aby to fungovalo…

Editoval HosipLan (30. 5. 2011 20:52)

Filip Procházka
Moderator | 4668
+
0
-

Tak mám tady první pokus… https://github.com/…tte/pull/264 ale jak na to tak koukám, tak jestli se to má dostat do Nette, tak to bude muset napsat někdo jiný :)

David Grudl
Nette Core | 8134
+
0
-

Dá se to implementovat i umazáním několika řádků ;-)

Cifro
Člen | 245
+
0
-

Woohoo! ^^

Filip Procházka
Moderator | 4668
+
0
-

Vždycky je lepší mazat, než přidávat! :)

Já se právě snažil, aby to papalo i ne-scalar, ale takto to asi bude stačit :) Díky

Editoval HosipLan (31. 5. 2011 8:04)

Teyras
Člen | 81
+
0
-

Hezké, ale funguje to jen pro vnořený array, se kterým se díky ArrayHash v parametrech nejspíš nesetkáme… V https://github.com/…tte/pull/300 to opravdu funguje