Explicitní určení priority rout

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

Je v nette nějaká možnost definovat prioritu/pořadí registrovaných rout? Mám appku rozdělenou na moduly, využívám k registrování routeru flame/module vše je ok. Jenže problém je ten že si nejdříve zaregistruji systémovou extension a ta zaregistruje systémové routy a pak se registrují další moduly. A když vytvořím routu podobnou systémové tak je odchycena právě ní. Takže bych potřeboval nějak určit že ty routy zaregistrované v systémovém modulu jsou vždy na konci.

Majkl578
Moderator | 1364
+
+1
-

Ne. Ale asi by sis mohl napsat vlastní PrioritizedRouteList.

akadlec
Člen | 1326
+
0
-

uf škoda že se něčím takovým nepočítalo :(

Jiří Nápravník
Člen | 710
+
0
-

Používám taky flame/module a drive to fungovalo tusim, tak jak jsi chtel, ted po tech poslednich urpavach ne a vadilo mi to taky. Tak jsem si vytvoril jeste jednu extension, ktera ma v sobe jen systemovy router a je uplne nakonci:-)

akadlec
Člen | 1326
+
0
-

No asi by to chtělo poladit flame/modules a udělat pull když nás tu je více co tento ext. používají ;)

Michal Vyšinský
Člen | 608
+
0
-

Ahoj, také používám RouteProvidery (ale ne ty z flames). Priorita rout mě docela štvala, zvlášť, když chce člověk udělat automatickou registraci extensions z composeru. Nakonec jsem se smířil s ručním přidáním jednotlivých providerů do configu v pořadí jakém chci – je to ta nejvíc transparentní možnost. Služba se tedy zaregistruje do kontejneru z extension, ale aktivovat ji musím ručně:

framework:
    routing:
        providers:
            - @App\Services\DefaultRouteProviderService
            - @AnnotateCms\Backend\Routing\BackendRouteProvider

Editoval Michal Vyšinský (8. 10. 2014 10:16)

akadlec
Člen | 1326
+
0
-

Takže pro ty co používají Flame\Modules jsem udělal fix pull a teď se dá priorita jednotlivých routerů nastavovat pomocí tagu. Nevím zda je to 100% správné řešení ale mě to funguje.

v neonu:

services:
	systemModule.moduleRouter:
		class: IPub\SystemModule\Router\ModuleRouterFactory
		tags: [flame.modules.router = 1]

	systemModule.webImagesRouter:
		class: IPub\SystemModule\Router\WebImagesRouterFactory
		tags: [flame.modules.router = 2]

Nižší číslo znamená nižší priorita a tak budou routy z tohoto routeru registrovány jako poslední. Pokud se číslo nepoužije tak se použije výchozí priorita 100.

Editoval akadlec (8. 10. 2014 18:01)

akadlec
Člen | 1326
+
0
-

Takže je to už i zamergováno, tak vesele užívejte ;)