Decorator Extension a navěšení na události (onAnchor, onStartup, …)

lucass
Člen | 89
+
0
-

Zdravím,

potřeboval bych všem komponentám v aplikaci navěsit na onAchor událost, která přes reflection zkontroluje přítomnost anotací a dle toho se nějak zachová. Chtěl jsem pro tyto účely použití Decorator, kdy bych předkovi tuto události nastavil.

decorator:
	Nette\Application\UI\Component:
		setup:
			- '$service->onStartup[]' = [\App\Test, test]

Možná to není vhodné použití a napsání vlastní extension, příp. vlastní rodičovská komponenta s daným chováním bude lepší, pro případ se ale ptám, jestli by to takto mělo jít, příp. jaký je zápis, protože takto se do startupu událost nezapíše, ale paradoxně ani chybu nevyhazuje. Otázníky dle https://github.com/…/syntax.neon#… jsou v aktuální verzi navíc deprecated.

Díky.

David Grudl
Nette Core | 8227
+
0
-

Mělo by fungovat '$onStartup[]' = [\App\Test, test] bez toho $service.

lucass
Člen | 89
+
0
-

@DavidGrudl Díky za reakci. Zkoušel jsem více variant, ale ani tato nefunguje. Pokud decorator použiju v extension (contributtí Decorator::of()), potom se požadované provede, ale v rámci neonu nikoliv – na překlepy a neexistující službu či ten callback to zareaguje, ale událost nenavěsí. Jak budu mít chvilku, zkusím to v sandboxu – třeba na to má vliv právě některý z contributtích balíčků.

Felix
Nette Core | 1245
+
0
-

lucass napsal(a):

Jak budu mít chvilku, zkusím to v sandboxu – třeba na to má vliv právě některý z contributtích balíčků.

Kdyby jsi zjistil, ze na to ma vliv neco meho, tak prosim dej vedet, nejak to spolu fixneme.