Zjistění všech preseterů a jejich funci?

- Scorpio
 - Člen | 45
 
Zdravím, chtěl jsem se zeptat zda je možné zjistit jednoduše všechny
presentery s jejich funkcemi typu render a action apod.
Chtěl bych udělat jednoduchý nástroj kde by se dalo každé funkci
přiřazovat opravnění ale tak aby když vznikne nová fce v presenteru aby
se automaticky přidala do formuláře o oprávněních.
Snad jsem to popsal dostatečně…

- romiix.org
 - Člen | 343
 
Znie to zaujímavo;)
Robil by som to cez Extension.
Urobíš službu ktorá bude do seba ukladať zoznam presenterov a ich
metód.
V CompilerExtension
beforeCompile() získaš zozam presenterov cez Builder.
class AclExtension extends CompilerExtension
{
	function beforeCompile()
	{
		$builder = $this->getContainerBuilder();
		$storage = $this->getDefinition($this->prefix('storage'));
		foreach ($builder->findByType('Nette\Application\IPresenter') as $presenter;) {
			$storage->addSetup('addPresenter', [$presenter]);
		}
	}
}
V storage získaš zoznam metód presentra cez ClassType::getMethods().
Je to celé z hlavy, iba nástrel…
Edit: … @looky na predbehol
Editoval romiix.org (14. 4. 2015 11:32)

- romiix.org
 - Člen | 343
 
Rozhodne odporúčam aktualizovať. Pravdaže postupne 2.0 → 2.1 → 2.2
→ 2.3. Bez aktualizácie sa postupne odstrihnete od nových vylepšení Nette
aj komponent.
Tieto migrácie zväčša nie sú až tak hrozné :) Najväčším problémom je
odhodlať sa k tomu.
V 2.0.5 je tiež CompilerExtension.
Editoval romiix.org (14. 4. 2015 13:33)