Kdyby\Events nejde zaregistrovat listener

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

Zdravím,

snažím se registrovat listenery v configu takto:

events:
	listeners:
		- App\TestListener

Ale nefunguje to – můžu tam napsat libovolný název listeneru, ale příjde mi, že je to úplně ignorováno.

Netušíte proč? Nechci registrovat listenery jako služby a psát zdlouhávé 3 řádky pro každý listener zvlášť.

TestListener:
	class: App\TestListener
	tags: [kdyby.subscriber]

Díky všem!

David Matějka
Moderator | 6445
+
0
-

nema to byt listeners, ale subscribers:

events:
    subscribers:
        - App\TestListener
BuGeR
Člen | 45
+
0
-

Aha, díky Davide!
Nebylo by možné vyhazovat při špatné konfiguraci nějakou vyjimku? Už hodněkrát se mi stalo, že jsem něco napsal do configu, on to sežral, ale nic se nestalo.

Oli
Člen | 1215
+
0
-
  1. Tohle ale není špatná konfigurace. Ty nemusíš mit žádný listener zaregistrovanej.
  2. Nikdy jsem nezkoušel, ale nevim proč by nemohlo fungovat podedit si tu extension a dopsat si vlastní konfiguraci. Timhle by jsi to defakto zakazal
David Matějka
Moderator | 6445
+
0
-

@Oli predpokladam, ze @BuGeR jde o to, aby to rvalo, ze pouzil neexistujici klic „listeners“

@BuGeR ano, slo by to. stejne tak to delaji zakladni nette extensions. jen to nekdo musi napsat :)

jiri.pudil
Nette Blogger | 1032
+
+4
-

Pro-tip: pokud nechceš pro každý listener psát záznam na tři řádky, můžeš to obejít dekorátorem, který ke službám daného typu doplní tagy apod. automaticky:

decorator:
	Kdyby\Events\Subscriber:
		tags: [kdyby.subscriber]

services:
	- App\TestListener

Editoval jiri.pudil (15. 3. 2016 12:04)

Oli
Člen | 1215
+
0
-

@DavidMatějka to je ten muj bod 2. Nezkousel jsem, ale slo by podedit EventExtension a udelat si svuj, kterej by zpracovaval treba listeners? Nerozbila by to potom kontrola existujicich klicu? Mozna ne, kdyz nad tim tak premyslim, pokud bych to pridal pred volanim parent funkce?

David Matějka
Moderator | 6445
+
0
-

@Oli tak treba ty nette extensions to kontroluji proti defaults: https://api.nette.org/…ion.php.html#53 takze by stacilo ty options tam pridat

Oli
Člen | 1215
+
0
-

Diky. Tzn, ze jediny co je potreba, nemit defaults private…