/** * Process router by default rules * * Default routers examples * / * /:module/ * /:module/:controller/ * /:module/:controller/:key1/:value1/:key2/:value2... * * @return bool */ protected function processRoute() { $uri = Request::getCleanUri(); $uri = trim($uri, '/'); $params = explode('/', $uri); if (sizeof($params)) { Request::setModule(array_shift($params)); } if (sizeof($params)) { Request::setController(array_shift($params)); } if ($size = sizeof($params)) { // save raw params Request::setRawParams($params); // remove tail if ($size % 2 == 1) { array_pop($params); $size = sizeof($params); } // or use array_chunk and run another loop? for ($i = 0; $i < $size; $i = $i + 2) { Request::setParam($params[$i], $params[$i + 1]); } } return true; }