vlasni router nekolikanasobny dump
- Pavel980
- Člen | 9
Ahoj vsem na vas otazku stavim si vlasni router.
v kodu mam bdump pro info jake jsou data, ale „problem“ je, ze se
mi tento dump vypisuje nekilikrat a to v tomto poradi:
URL adresa, params ConstructUrl, params ConstructUrl, URL adresa, URL adresa, URL adresa
kod vlasniho routeru
<?php
class FrontendRouterFactory implements Router
{
function match(Nette\Http\iRequest $httpRequest): ?array
{
bdump($httpRequest->getUrl(), 'URL adresa');
$dataRouter = [
'presenter' => 'Kontakt',
'action' => 'default',
'slug'=>'kontakt'
];
return $dataRouter;
}
function constructUrl(array $params, Nette\Http\UrlScript $refUrl): ?string
{
bdump($params, 'params ConstructUrl');
return 'https://domena.tld/kontakt';
}
}
?>
vlozeni routru do systemu
<?php
public function createRouter(): RouteList
{
$router = new RouteList;
$router->withModule('Backend')
->addRoute('/admin/[<lang=cs [a-z]{2}>/]<presenter>/<action>', [
/*'module' => 'Backend',*/
'presenter' => 'Dashboard',
'action' => 'default',
]);
$router->withModule('Frontend')
->add(new FrontendRouterFactory($this->database));
/*->addRoute('[<lang=cs [a-z]{2}>/]<presenter>/<action>', [
'presenter' => 'Dashboard',
'action' => 'default',
]);*/
return $router;
}
?>
registrace routeru do neonu
services:
- App\Router\RouterFactory
route: @App\Router\RouterFactory::createRouter
Vsem predem dekuji za informace… pripadne upravy…
- Marek Bartoš
- Nette Blogger | 1275
Na tom routeru nic špatně není, takže není moc co ti k tomu říct.
Abys zjistil odkud se ti router volá a mohl najít proč můžeš zkusit
bdump(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS));
. Ukáže ti to
cestu v kódu od začátku requestu až k tomu volání.
- Marek Bartoš
- Nette Blogger | 1275
Btw, k čemu potřebuješ vlastní implementaci routeru?
Editoval Marek Bartoš (6. 9. 2023 22:49)
- David Grudl
- Nette Core | 8228
A v čem je problém? Ty metody se prostě volají tolikrát, kolikrát je potřeba. Hodně toho udělá routing panel v Tracy.