vlasni router nekolikanasobny dump

Pavel980
Člen | 9
+
0
-

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…

Pavel980
Člen | 9
+
0
-

To opravdu nikdo neví nebo to je spatne olozena otazka?

Marek Bartoš
Nette Blogger | 1177
+
+1
-

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 | 1177
+
+1
-

Btw, k čemu potřebuješ vlastní implementaci routeru?

Editoval Marek Bartoš (6. 9. 2023 22:49)

David Grudl
Nette Core | 8150
+
+1
-

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.