Jak zaregistrovat službu v config.ini

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

Zdravim, napsal jsem si jednoduchy prekladac implementujici rozhrani ITranslatro, ale neni mi jasne jak presne ho zaregistrovat do config.ini. Nenasel jsem k tomu zadnou dokumentaci, pokud se pletu prosim opravte me. Vsiml jsem si ze se to zapisuje nejak takto:

service.Nette-ITranslatro.factory = ...

ale nechapu slovo factory zda tam musi byt a jaky ma vyznam. Napriklad u autentizace je zase:

service.Nette-Security-IAuthenticator = UsersModel

Tam zase factory neni?
Dale za rovnitkem je asi cesta k objektu?
Pak jsem nasel zde ve foru napriklad toto:

service.Nette-ITranslator.factory = "NetteTranslator\\Gettext::getTranslator"
service.Nette-ITranslator.run = TRUE

NetteTranslator\\Gettext::getTranslator je divna cesta ne? Nebo nevim co delaji dve spetna lomitka za sebou… budu moc rad kdyz mi to nekdo objasni… Dekuji

Aurielle
Člen | 1281
+
0
-
  • Rozhraní se jmenuje ITranslator
  • Factory neboli továrnička znamená, že danou službu může klidně vytvářet statická metoda jiné třídy. Pokud neuvedeš factory ale jen název třídy, pokusí se ji Nette při prvním použití vytvořit.
  • Run znamená vytvoření třídy ihned po načtení konfiguračního souboru.
  • To druhé lomítko je tam nejspíš kvůli escapování, nicméně mi to funguje i bez něj.
joseff
Člen | 233
+
0
-

Tak tedy chapu co znamena factory a co znamena run. Existuji dalsi klicova slova nebo ne? Je toto nekde popsano? Dekuji moc za reakce!

h4kuna
Backer | 740
+
0
-

posané nevím jestli to někde je ale každopádně jakmile tam je $value->xxx takové jsou možnosti:

popsané výše

  • run
  • factory

Editoval matata (29. 1. 2011 0:14)

Patrik Votoček
Člen | 2221
+
0
-
  • singleton (snad nemusím blíže popisovat)
  • option (pole hodnot předané konstruktoru / továrničce)