AutoInstalace?

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

Zdravim,

narazil jsem na maly problemek. Delam samoinstalacni balik a potrebuju zkontrolovat nastaveni db a popripade o tom napsat hlaseni. V bootstrap.php mam onStartup na InstallPresenter s public metodou initialize, ve ktere kontroluju nastaveni apod. Ovsem nastal problem, ze nejsem schopny presmerovat na chybovy view, jelikoz aplikace jeste neni asi plne spustena. Zkousel sem i Environment::getPresenter(), ale to mi vratilo null.

Poradi mi nekdo, jak to obejit nebo jak to udelat „korektne“?

Diky

Tomik
Nette Evangelist | 485
+
0
-

Ukaž nám nějakou ukázku kódu…

sodae
Nette Evangelist | 250
+
0
-

tohle spíše neřeší problém ale myslím že je to lepší alternativa
ja bych skusil udělat že u init by byla kontrola zda existuje a pokud ještě aplikace nebyl naistalovaná tak přidám router a ten bude odkazovat na instalaci neni to pěknější ?

Dj_Oggy
Člen | 67
+
0
-

bootstrap.php

$application->onStartup[] = 'BaseModel::initialize';

BaseModel

class BaseModel extends DibiObject
{
	public static function initialize()
	{
		$config = Environment::getConfig('database');

		if ($config['host'] == 'adresa_db' || $config['username'] == 'login_db' ||
			$config['password'] == 'heslo_db') {

			//tady doplnit co pro presmerovani na view?
		}
	}
Dj_Oggy
Člen | 67
+
0
-

Kontrolu na pritomnosti db mam taky, ale musim kontrolovat i nastaveni pripojeni a pokud neni spravne, tak o tom zahlasit.

sodae
Nette Evangelist | 250
+
0
-
Environment::getApplication()->getPresenter()->view = 'myerror';

a pokud to nepujde co skusit exception ? zavoláš, presenter Error ji chytne a vyhodí pohled, nevim zda je to reálné ale skusit by to bylo dobre

Editoval sodae (20. 10. 2009 18:12)

Dj_Oggy
Člen | 67
+
0
-

Pomoci exception me to napadlo taky, ale je to takove divne.

Jinak koukal sem na debug a applikace v tom miste ma jeste presenter na null, takze to vyhodi pokus o pristup k neobjektu.

vlki
Člen | 218
+
0
-

Hm… a když by se to řešilo v metodě startup v Presenteru, tak by ten požadovaný kontext byl. Což se ale nedá řešit externě.

Co třeba hlouběji dát něco, že když vyhodí db vyjímku/chybu, tak zkusit initializovat db a zavolat dotaz znovu (nebo nevolat, prostě zjistit, jestli je už inicializovano)?

kravčo
Člen | 721
+
0
-

Pomôže preskúmanie metódy Application::run() a kontextu volania udalosti onStartup.