cim nahradit getHttpRequest()

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

Ahojte

Doteraz som v RouterFactory používal Nette\Environment::getHttpRequest()->getUrl()->host

Vo verzii 2.4 je to už však deprecated. Ako inak to teda zapísať aby som vedel RouterFactory aký je host.

ďakujem

Pavel Janda
Člen | 977
+
+2
-

V presenteru:

$this->getHttpRequest()....

Jinde:

public function __construct(Nette\Http\Request $httpRequest)
{
	$this->httpRequest = $httpRequest;
}

Edit:
Nette\Environment už bys neměl používat vůbec. Všechny služby apod předávej. Určitě tu na foru na toto téma najdeš hodně vláken.

Editoval Pavel Janda (8. 8. 2015 21:40)

Joe Kolář
Člen | 13
+
0
-

Použij dependency injection a nech si jej do RouterFactory předat:

class RouterFactory {
	/** @var Nette\Http\IRequest */
	private $httpRequest;

	public function __construct(Nette\Http\IRequest $request) {
		$this->httpRequest = $request;
	}
}

V případě, že by jsi měl RouterFactory jako statickou třídu, je možné si nechat službu (v tomto případě request) vstříknout jako parametry statické metody, u Tebe asi RouterFactory::createRouter. Více o dependency injection v Nette.