nemel by by translator staticky?

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

Zdravim, snazim se vytvorit web ve vice jazycich a nechapu jednu vec. Jak vytvorit translator. Tento objekt totiz volam pokazde od jinud (nekdy v sablone, pak zase nastavuju preklad formulare atd..) tak mi prijde logictejsi aby tento objekt byl cely staticky abych mohl kdekoliv zavolat Transalte::translate(‚preloz to‘), jenze to je v rosporu s rozhranim ITranslator. Pokud to je jako klasicky objekt musel bych vytvaret pokazde jeho instanci. Nebo jak to funguje? Nebo si ho mam vytvorit na zacatku v bootstrapu a ulozit do Environment? Diky

JakubJarabica
Gold Partner | 184
+
0
-

Co tak vyuzit Dependency Injection – Nette\Context? Omnoho krajsie ako staticka trieda.

joseff
Člen | 233
+
0
-

No to nevím je ted moc zkušeností s Nette\Context nemam(nebo spis zadne), je to nekde vysvetlene? Vlasne vubec nevim jak to pouzit… :-)

joseff
Člen | 233
+
0
-

Není mi jasné jak jinak nastavit do formuláře translator než:

$translator = new Translator();
$this->setTranslator($translator);

Tedy vytvářet pro každý formulář nový objekt Translatro, což mi přijde nešikovné…

Aurielle
Člen | 1281
+
0
-

Vytvoř a zaregistruj ho jako službu, nejlépe přes config.ini

joseff
Člen | 233
+
0
-

Stále nechápu proč to registrovat jako službu nebo používat Context když by to šlo přes statiskou metdou Translatror::translate(…)
Co je na tom špatného? Dá se zavolat odkudkoliv a není s tím problém.
Může mi to někdo prosím alespoň trochu objasnit? Díky

Aurielle
Člen | 1281
+
0
-

Protože je to v rozporu s rozhraním ITranslator, a protože ne každý Translator se může pracovat staticky. Další důvody ti určitě rozepíšou i jiní členové fóra.

Filip Procházka
Moderator | 4668
+
0
-

Proč jsou statické metody zlo?

Zkráceně: statické metody jsou procedurální programování obalené do tříd. Je to na tobě jak budeš pracovat… Ale objekty jsou skoro vždy lepší

Editoval HosipLan (26. 1. 2011 17:51)