Problém s registrací vlastního linkGeneratoru v configu
- chikeet
- Člen | 160
Zdravím,
snažím se zaregistrovat vlastní linkGenerator, který extenduje
Nette\Application\LinkGenerator
. V configu mám:
services:
application.linkGenerator: MyNamespace\MyLinkGenerator
a Tracy hlásí:
Service 'application.linkGenerator': Service of type Nette\Http\Url needed by BePositive\Model\Services\LinkGenerator::__construct() not found. Did you register it in configuration file?
Co dělám špatně?
- David Matějka
- Moderator | 6445
Ahoj,
kdyz prepises definici sluzby, tak nette zahodi argumenty, ktere jsou
nastaveny a bohuzel se k nim neda nejak snadno dostat.
ale muzes je tam znovu explicitne uvest
services:
application.linkGenerator: MyNamespace\MyLinkGenerator(refUrl: @Nette\Http\IRequest::getUrl)
- chikeet
- Člen | 160
Jan Mikeš napsal(a):
Ukaž konstruktor tvého linkgenerátoru – podle chybové hlášky tam vyžaduješ
Http\Url
což ale není (a nemá být) registrovaná služba v DI.
Konstruktor je poděděný z \Nette\Application\LinkGenerator. Teď mi ale došlo, že si tam to Url můžu dodat v configu stejně, jako se dodává v ApplicationExtension. Jen nevím, jak to přesně zapsat. Tohle:
application.linkGenerator: BePositive\Model\Services\LinkGenerator(@Nette\Http\IRequest::getUrl)
mi nefunguje, respektive končí stejnou chybovou hláškou.
Edit: tak vyřešeno, díky @DavidMatějka!
Editoval chikeet (25. 11. 2016 16:59)