Routy – Zkrácení zápisu a zrychlení

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

Zdravím,

potřeboval bych poradit s routama. Válčil jsem s nima už mnohokrát, stále nemůžu do jejich filosofie proniknout (a to sem pročet forum, tutorialy, quickstart apod.). Tady je moje součásná verze pro CMS, ale vím, že o hodně zpomaluje načítání. Moc bych ocenil, kdyby mi někdo poradil jak všechny routy nějak úhledně přepsat a snad tím i zrychlit aplikaci. Díky předem.

<?php
$router[] = new Route('index.php', array(
	'presenter' => 'Default',
	'action' => 'default',
    	'id' => '',
), Route::ONE_WAY);
	$router[] = new Route('admin', array(
	   	'presenter' => 'Table',
     		'action' => 'default',
	));
	$router[] = new Route('upravit/<what>', array(
	   	'presenter' => 'Editor',
     		'action' => 'edit',
	));
	$router[] = new Route('vytvorit', array(
	   	'presenter' => 'Editor',
     		'action' => 'default',
	));
	$router[] = new Route('prihlaseni', array(
	   	'presenter' => 'Login',
     		'action' => 'default',
	));
	$router[] = new Route('soubory', array(
	   	'presenter' => 'FileManager',
     		'action' => 'default',
	));
	$router[] = new Route('<page>', array(
	   'presenter' => 'Default',
	   'action' => 'default',
	   'page' => '',
	));
?>
iguana007
Člen | 970
+
0
-

Ja mam CMSko rozdelene na 2 moduly: Front a Admin a routy vypadaji nasledovne:

$router[] = new Route('admin/<presenter>/<action>/<id>/<id2>', array(
	'module' => 'Admin',
        'presenter' => 'Base',
        'action' => 'default',
	'id' => NULL,
	'id2' => NULL,
));

$router[] = new Route('<presenter>/<action>/<filtr>/<id>/<id2>', array(
        'module'    => 'Front',
	'presenter' => 'Homepage',
	'action' => 'default',
	'filtr' => NULL,
	'id' => NULL,
	'id2' => NULL,
));

Editoval iguana007 (22. 5. 2010 17:03)

sodae
Nette Evangelist | 250
+
0
-

xixixao: jestli chceš zachovat strukturu odkazů tak asi tohle je jediná možnost
ale pokud jde o administraci tak předpokládám že je to jedno o adresu a tedy jak je ve skeletonu nebo jak psal iguana007

$router[] = new Route('admin/<presenter>/<action>/<id>', array(
        'module' => 'Admin',
        'presenter' => 'Homepage', // Dashboard?
        'action' => 'default',
        'id' => NULL
));
xixixao
Člen | 5
+
0
-

Díky za odpovědi. Mám ještě jede dotaz k routování, dá se nějak staticky nastavit baseUrl pro linky vytvářené v presenterech? Tohle funguje pro promenou baseUri, kterou pak používám pro adresu stylů a obrázků apod.

<?php
Environment::setVariable('baseUri', "http://nekde.cz/stranky");
?>

Dá se něco podobného nastavit pro linky vytvářené stylem:

<?php
$presenter->link("Default:", $id);
?>

? (vím,že bych to neměl potřebovat, ale teď to holt potřebuju :) )
Díky předem.
P.S.: RewriteBase na to nemá vliv

Editoval xixixao (22. 5. 2010 19:10)

Foowie
Člen | 269
+
0
-

Routy prihlaseni, vytvorit a soubory by šly sjednotit s pomocí překladového slovníku nemýlím-li se.

xixixao
Člen | 5
+
0
-

Díky, na to jsem se chtěl podívat, bohužel jsem teďka doprogramoval ještě podporu různých jazyků a tím se i v routě pro ‚vytvořit‘ objevil parametr. Stejně se na ty styly ale ještě podívám.

Někdo nějaký nápad, co s tím nastavením kořenového adresáře u vytvářených linků?