Reflexe pro checkRequirements
- jtousek
- Člen | 951
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
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)