Zacyklení absolutní routy s nepovinnými parametry .. kvůli lomítku

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

PHP 5.3.10–1ubuntu3.1
Apache/2.2.22 (Ubuntu)
Nette Framework 2.0.3 (revision eb558ae released on 2012–04–04)

Našel jsem zvláštní chování routeru.. pokud je maska routy absolutní s nepovinnými parametry docházelo ke smyčce, vyřešilo to nestandardní lomítko na konci..

více v kódu:

//ESHOP KATEGORIE
$eshopRouter[] = $routee = new FilterRoute('//eshop.sam73.<lang>[/kategorie:<category_id>][/sortiment:<assortment_id>][/barva:<colorGroup_id>][/kolekce:<collection_id>]/', array(
                'lang' => array(
                    //Route::VALUE => 'cs',
                    Route::FILTER_IN => callback('AppRouter::langIn'),
                    Route::FILTER_OUT => callback('AppRouter::langOut'),
                ),
                'presenter' => 'Category',
                'action' => 'default',
                'category_id' => NULL,
                'assortment_id' => NULL,
                'colorGroup_id' => NULL,
                'collection_id' => NULL
            ));
$routee->addFilter('category_id', callback(array($container->modelLoader->category, 'urlToId')), callback(array($container->modelLoader->category, 'IdToUrl')));
$routee->addFilter('assortment_id', callback(array($container->modelLoader->assortment, 'urlToId')), callback(array($container->modelLoader->assortment, 'IdToUrl')));
$routee->addFilter('colorGroup_id', callback(array($container->modelLoader->colorGroup, 'urlToId')), callback(array($container->modelLoader->colorGroup, 'IdToUrl')));
$routee->addFilter('collection_id', callback(array($container->modelLoader->collection, 'urlToId')), callback(array($container->modelLoader->collection, 'IdToUrl')));

Důležité je to lomítko na konci masky (umístení na konec není důležité).. Když tam lomítko nebylo a všechny parametry byly NULL.. docházelo k zacyklení.