Zrušení výskytů Nette\Environment v kódu frameworku

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

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.

https://dev.nette.org/…u-frameworku

juzna.cz
Člen | 248
+
0
-

Muzete prosim sepsat duvody (nebo dat aspon odkazy), proc je ten environment spatnej? Jednak pro novacky ve frameworku, druhak to take muze pomoci hledani zpusobu, jak jej v konkretnich pripadech vyhnat z kodu ven. Dik

kravčo
Člen | 721
+
0
-

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…

grey
Člen | 94
+
0
-

A hlavně je to teď moderní a cool :)

mkoubik
Člen | 728
+
0
-

Moderní a cool bylo DI někdy kolem 80./90. let, ale až s verzí 5.3 se z PHP začal stávat jazyk ve kterém má smysl něco takového řešit.

BTW: je tohle rejpání do PHP pořád ještě cool?

juzna.cz
Člen | 248
+
0
-

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)

Aurielle
Člen | 1281
+
0
-

Rozšiřitelnost se dá (i dala) částečně realizovat přes konfiguraci v config.ini/.neon.

Ondřej Mirtes
Člen | 1536
+
0
-

Značně jsem zrefaktoroval Session a odstranil Environment z HttpContextu.

Filip Procházka
Moderator | 4668
+
0
-

Pěkná práce Ondro :)

David Grudl
Nette Core | 8227
+
0
-

Tak Environment už je z framewoku takřka pryč.

Patrik Votoček
Člen | 2221
+
0
-

Nádhera!!!

Honza Marek
Člen | 1664
+
0
-

Výborně. Už jsem řikal něco o další fázi? Rušení contextu v kódu frameworku? :)

Filip Procházka
Moderator | 4668
+
0
-

Jdu se přebalit… Tohle je super! Jásám! :)

22
Člen | 1478
+
0
-

můžu se zeptat, jaký to mám vliv na Nette BFU v praxi? Je tam possible BC break, v čem tedy spočívá, co se týká kodu před a po resp. nějaké ukázky kódu?

Filip Procházka
Moderator | 4668
+
0
-

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
+
0
-

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
+
0
-

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á.