Aktuální presenter v injectované service

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

Ahoj,
prosím o radu jak dostat aktuálně vykonávaný presenter do service.
Hledal jsem na foru, ale rady jsou 3 roky staré a od té doby se změnilo Nette, takže to neběží.

Mám service a presenter:

<?php
class Presenter{
	/** @var Foo @inject */
	$bar;
	...
	...
}
class Foo{
	public function __construct( Context $context, Application $app){
		$pres=$app->getPresenter();    // vrátí null
	}
}
?>

Problém je však slepice-vejce. Presenter faktory tvoří presenter a při tom vytvoří Foo a předá mu applikaci, ale tam ještě není vytvořen presenter…
Je nějaká jiná cesta, jak se v construktoru service dostat na aktuální presenter?

Nebo jinak:
Potřebuju, aby se service zaregistrovala při injectnutí do onShutdown[], ale nechci pstát metodu injectFoo().

Editoval Rampus (21. 5. 2015 16:46)

newPOPE
Člen | 648
+
+5
-

Zaregistruj si listener na tento event.

Editoval newPOPE (21. 5. 2015 16:45)

Jan Endel
Člen | 1016
+
+1
-

spíše na co už v konstruktoru service potřebuješ presenter?

Rampus
Člen | 39
+
0
-

+1;
Super, to je ono :D
Teda dělám s Nette už pár let, ale o tomhle eventu, jsem ani nevěděl…
Díky moc :)

David Matějka
Moderator | 6445
+
0
-

@Rampus on je celkem novej :) https://github.com/…6efeb0dd7082