Existuje event po volaní action?
- sucho
- Člen | 57
Zdravím @DavidGrudl chcem sa opýtať či existuje nejaký Event po
volaní action
niečo ako je onStartup()
Chcem dosiahnuť to aby som vedel vložiť componenty len pre určitú
action
Ručne sa to samozrejme dá cez $this->addComponent()
ale chcem tie componenty registrovať cez config.neon
aby sa
načítali len tam kde majú
v startup()
je to skoro lebo veci ako $entity
atď. sa
vytvoria až v action
v beforeRender()
už je to neskoro lebo componenta nieje
attachnutá k presentru kvôli volaniu napr. handle
Pridávať event na koniec každej action sa mi tiež nezdá najlepšie
riešenie
Nenašiel som taký event ani v https://contributte.org/…r-extra.html#…
Najlepšie miesto by bolo asi tu niekde https://github.com/…resenter.php#L197
- sucho
- Člen | 57
Globálna createComponentPage()
mala byť až ďalšie
štádium
keď dokončím builder ktorý bude rozmiestnenie komponent ukládať do DB
no zatiaľ to mám len cez config a medzi komponentami sú aj statické texty
alebo elementy
preto vytvoriť takú componentu by nebolo naj
ale asi to tak urobím s tým že nastavím si template file aký potrebujem
no chcel som vedieť či taký event neexistuje alebo či je to možné riešiť inak
- sucho
- Člen | 57
Martk napsal(a):
Ano, existuje event onStartup
Lenže on sa vykoná ešte pred action a skôr by som privítal afterAction
- Václav Pávek
- Backer | 100
Event afterAction
by se hodil, ale co ti brání si napsat
vlastní implementaci metody tryCall
?
- Martk
- Člen | 661
Jak píše @VáclavPávek, můžeš jako workaround udělat toto:
protected function tryCall(string $method, array $params): bool {
$isAction = $this->formatActionMethod($this->getAction()) === $method;
if ($isAction) {
// beforeAction
}
$return = parent::tryCall(string $method, array $params);
if ($isAction) {
// afterAction
}
return $return;
}
- sucho
- Člen | 57
No to by šlo
už som chcel vyskúšať prepísať run() :D
https://github.com/…resenter.php#L175
ale tu toho bude menej https://github.com/…omponent.php#L82
len sa využíva aj pri render metódach takže to ošetriť
alebo doplniť before/after eventy aj pre rendre :D
Editoval sucho (27. 3. 2019 12:56)