src/Core/Application.php
private function parseRouter($router, $params = array(), &$init_params = true)
    {
        if ($router instanceof RouterInterface) {
            $controller = $router->getController();
            $action = $router->getAction();
            $params = $router->getParams();
        } elseif (is_array($router)) {
            $init_params = false;
            $controller = $router['controller'];
            $action = $router['action'];
        } else {
            $init_params = false;
            if (strpos($router, ':')) {
                list($controller, $action) = explode(':', $router);
            } else {
                $controller = $router;
                $action = Router::DEFAULT_ACTION;
            }
        }

        return array('controller' => ucfirst($controller), 'action' => $action, 'params' => $params);
    }
private function parseRouter($router, $params = array(), &$init_params = true)
    {
        if ($router instanceof RouterInterface) {
            $controller = $router->getController();
            $action = $router->getAction();
            $params = $router->getParams();
        } elseif (is_array($router)) {
            $init_params = false;
            $controller = $router['controller'];
            $action = $router['action'];
        } else {
            $init_params = false;
            if (strpos($router, ':')) {
                list($controller, $action) = explode(':', $router);
            } else {
                $controller = $router;
                $action = Router::DEFAULT_ACTION;
            }
        }

        return array('controller' => ucfirst($controller), 'action' => $action, 'params' => $params);
    }
解析router
<pre>
router类型为字符串时, 第二个参数生效
当router类型为数组或字符串时,dispatcher中不再调用initParams()
</pre>

@param RouterInterface|string $router
@param array $params
@param bool $init_params
@return array