Neúspěšný pokus o získání Request z DI kontejneru

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

Zdravím všechny,

mám problém, kdy se snažím získat Nette\Http\Response z DI kontejneru. Snažím se o to způsobem:

$httpResponse = $this->getService('Nette\Http\Request');

při tomto pokusu mi ovšem vyskočí Laděnka s hláškou:
User Deprecated
Nette\Application\UI\Presenter::getService() is deprecated; use dependency injection instead.
.

Nevíte někdo, kde by mohla být chyba?

Leaf
Člen | 2
+
+1
-

Problém je v tom, že získávání služeb pomocí getService() je deprecated(zastaralé), to je napsané i v té chybě. Nejlepší bude když si službu z DIC získáš např. pomocí konstruktoru, viz. dokumentace

Aurielle
Člen | 1281
+
+2
-

Nehledě na to, že httpRequest/httpResponse jsou v presenterech dostupné přímo.

Patrikkk
Člen | 9
+
0
-

Aurielle napsal(a):

Nehledě na to, že httpRequest/httpResponse jsou v presenterech dostupné přímo.

Mohu se zeptat, jak se k němu tedy dostanu?

Tanadche
Člen | 11
+
+1
-

httpRequest a httpResponse jsou sice private, ale mají protected gettery, takže je získáš takhle

$httpRequest = $this->getHttpRequest();
$httpResponse = $this->getHttpResponse();

viz https://api.nette.org/…ter.php.html#…