Reflexe pro checkRequirements

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

Experimentuju s checkRequirements a narazil jsem na drobný problém. Pravděpodobně nejde o bug, ale rád bych s tím něco udělal.

Mám presenter:

/**
 * @User loggedIn
 */
abstract class SecuredPresenter extends BasePresenter
{
	//...
}

Většina dalších presenterů dědí právě od něj (a jsou final). Čekal jsem, že všichni potomci budou v tuto chvíli vyžadovat, aby uživatel byl přihlášen – tak tomu ale není, reflexe totiž vrací jen anotace té poslední třídy a na anotaci u tohoto rodičovského presenteru není brán ohled.

Řešení: mohu si udělat nějaký cyklus a kromě anotací aktuálního presenteru projít i anotace všech předků – je to podle vás správná cesta? Nebo byste anotaci raději všude opisovali? Anebo ještě nějak jinak?

Felix
Nette Core | 1198
+
0
-

Klidne si muzes udelat cyklus nebo muzes treba v SecuredPresenter startup.

/**
 * @User loggedIn
 */
abstract class SecuredPresenter extends BasePresenter
{
    public function startup() {
	$this->checkRequirements(new Reflection("SecuredPresenter"));
    }
}

Pisu to z hlavy, tak nezarucuju.

Editoval Felix (26. 9. 2012 1:33)