Nastavenie globálnej premennej a jej inicializácia

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

Mám premennú $styleUri, tú by som však chcel definovať globálne (má to byť hlavne pre template systém, tj. $this->template->styleUri). Táto premenná (keďže je to premenná), sa môže meniť, hodnotu by mala dostať povedzme z továrničky (zadefinovanej v BaseModeli). Kde ju definovať a ako ku nej pristupovať?

Editoval Peppy (13. 7. 2011 14:49)

Filip Procházka
Moderator | 4668
+
0
-

Slovo globálně si vyhoď ze slovníku :)

Proměnnou definuj v configu a budeš ji mít přístupnou napříč aplikací. A můžeš si ji pak i předat do šablony. Asi nejjednodušeji takto:

protected function beforeRender() // v BasePresenteru
{
	parent::beforeRender();
	$this->template->styleUri = $this->context->params['styleUri'];
}

Editoval HosipLan (13. 7. 2011 15:37)

Peppy
Člen | 137
+
0
-
  1. premenná $style bude v DB.
  2. styleUri je, povedzme, zložená premenná tj. $baseUri + /path/to/nowhere/ + $style;

Oukej, díky za beforeRender();

(OT: BTW. nemôžem vyhodiť, programujem aj v C++ :D :D :D…)

Filip Procházka
Moderator | 4668
+
0
-

Koukni na Configurator, na vytváření služby settings a třídy Setting a Settings https://github.com/…ibs/Kdyby/DI jako inspirace (mám to jako hrubý náčtr pro Doctrine)

Editoval HosipLan (13. 7. 2011 19:59)