Akcia po opustení presenteru

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

Ahoj,

dá sa nejako nastaviť akcia po ukončení presenteru, po jeho opustení napr pri prechode na iný? Nemyslím akciu/latte šablónu, ale fakt po ukončení presenteru. Ide o to, že v danom presentere tvorím v akcií temp súbor a v ďalších akciach ho spracovvávam, ale keď sa rozhodne užívateľ opustiť daný presenter, tak by som ho mal vymazať. Je to nejak možé dobrou praktikou? Napadlo ma to urobiť cez Ajax, ale do JS nemám moc chuť ísť, skôr by som to chcel urobiť nejak v nette.

duke
Člen | 650
+
0
-

Presenter má definovanou událost onShutdown, takže můžeš v presenteru udělat např.:

$this->onShutdown[] = function () use ($tempFile) {
	unlink($tempFile);
}

… nebo to udělat přes metodu presenteru:

$this->onShutdown[] = [$this, 'removeTempFile'];
Raiper34
Člen | 65
+
0
-

no myslim toto som skusal a to sa spusta vzdy pri kazdej akcii presenteru, nie ked opustam presenter, ale uz pri opustani akcie napr do inej akcie v ramci toho isteho presenteru

David Matějka
Moderator | 6445
+
+2
-

Tak teoreticky bys ten soubor mohl mazat pri pristupu na jakykoliv jiny presenter nez ten, ktery se nema mazat. Ale to bude zpusobovat problemy, pokud by uzivatel treba otevrel novy tab. Spise bych sel cestou nejake expirace souboru a treba cronem to mazat