Zrušení výskytů Nette\Environment v kódu frameworku
- Honza Marek
- Člen | 1664
Sepsal jsem seznam výskytů Nette\Environment ve frameworku. Pokud budete kdokoliv mít nápad jak se zbavit kterého environmentu, připište to na tu wiki stránku.
- kravčo
- Člen | 721
Hlavná výhoda Contextu oproti Environmentu je možnosť ľahko dosadiť mock objekt (napr. pre účely testovania). To skrátka so zadrôtovanou statickou triedou spravíš jen stěží. Mám za to, že práve testovanie je jedným z hlavných dôvodov, pre ktoré sa celá tá mašinéria okolo kontextu spustila.
Celé sa to volá tuším Dependency injection či tak nejako…
- juzna.cz
- Člen | 248
Krome testovani tam vydim jeste vyhodu v jednoduche rozsiritelnosti (chci aby se pouzivala trida MyUser misto Nette\…\User)
Kvuli temto dvema duvodum tedy vydim nako nevyhodu Environmentu jeho statickost, coz se da vyresit jeho nahrazenim za Context resp. ServiceContainer s moznosti konfigurace.
Jako druhou nevyhodu vidim WTF faktor, kdy se muzeme divit, proc se nam neco chova tak jak se chova, protoze se tam nekd taha neco z Environmentu a my o tom nevime. To podle me ServiceContainer nevyresi, to by vyresila az cista DI vsech sluzeb.
(PS omluvte prosim moje gramaticke chyby, pulrok nemluveni cesky se na me uz znacne podepsal)
- Honza Marek
- Člen | 1664
Výborně. Už jsem řikal něco o další fázi? Rušení contextu v kódu frameworku? :)
- Filip Procházka
- Moderator | 4668
Pro Nette BFU by tam podle mě, po zběžném prohlédnutí, neměl být BC. Jenom pro lidi, kteří si ohýbají chování těch upravených tříd.
- David Grudl
- Nette Core | 8227
Honza Marek napsal(a):
Výborně. Už jsem řikal něco o další fázi? Rušení contextu v kódu frameworku? :)
Context je používá jen tam, kde je potřeba lazy-vytváření služeb. Jsem zvědav, jak se s tím popereš ;-)
- Honza Marek
- Člen | 1664
Takže se používá jako taková univerzální továrnička místo továrniček na konkrétní typy objektů. S tim by se snad dalo poprat snadno. Ale musim se ještě přesně kouknout kde a jak se ten context používá.