Ještě chytřejší config (Dependency Injection)
- Filip Procházka
- Moderator | 4668
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?
- Filip Procházka
- Moderator | 4668
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)
- Filip Procházka
- Moderator | 4668
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
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ý :)
- Filip Procházka
- Moderator | 4668
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
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