/**
  * get all routes
  * get the URLs, the variables, the modules and the actions of all routes, use the "/applications/config/routes.xml" file.
  * @param string current url (optionnal)
  * @return array list of routes object
  */
 public function getAllRoutes($currentUrl = null)
 {
     //get content of the file.
     $xml = new \DOMDocument();
     $xml->load(__DIR__ . '/../applications/config/routes.xml');
     $file = $xml->getElementsByTagName('route');
     //parse the content.
     $varsNames = array();
     $varsValues = array();
     $varsList = array();
     foreach ($file as $line) {
         //create the route.
         $varsNames = explode(',', $line->getAttribute('vars'));
         //get the name of all variables
         $route = new route($line->getAttribute('url'), $line->getAttribute('module'), $line->getAttribute('action'), $line->getAttribute('name'), $varsNames);
         //get variables.
         if ($varsValues = $route->match($currentUrl)) {
             array_shift($varsValues);
             // the first result contain the full captured string (cf. pregmatch manual).
             foreach ($varsValues as $key => $match) {
                 $varsList[$varsNames[$key]] = $match;
             }
             $route->setVars($varsList);
         }
         //add the route to the router.
         $this->addRoute($route);
     }
     //return all routes.
     return $this->routes;
 }
예제 #2
0
파일: routes.php 프로젝트: 453111208/bbc
| 后台通用route
|--------------------------------------------------------------------------
*/
route::group(array('prefix' => 'shopadmin'), function () {
    # 系统分类
    route::match(array('GET', 'POST'), '/', array('as' => 'shopadmin', 'uses' => 'desktop_router@dispatch'));
});
/*
|--------------------------------------------------------------------------
| setup
|--------------------------------------------------------------------------
*/
route::group(array('prefix' => 'setup'), function () {
    # 安装首页
    route::match(array('GET', 'POST'), '/', ['as' => 'setup', 'uses' => 'setup_ctl_default@index']);
    # 安装页
    route::match(array('GET', 'POST'), '/default/process', ['uses' => 'setup_ctl_default@process']);
    # 命令行安装
    route::match(array('GET', 'POST'), '/default/install_app', ['uses' => 'setup_ctl_default@install_app']);
    # console
    route::match(array('GET', 'POST'), '/default/console', ['uses' => 'setup_ctl_default@console']);
    # 激活
    route::match(array('GET', 'POST'), '/default/active', ['uses' => 'setup_ctl_default@active']);
    # 激活成功
    route::match(array('GET', 'POST'), '/default/success', ['uses' => 'setup_ctl_default@success']);
    # 环境初始化
    route::match(array('GET', 'POST'), '/default/initenv', ['uses' => 'setup_ctl_default@initenv']);
    # 女装初始化数据
    route::match(array('GET', 'POST'), '/default/install_demodata', ['uses' => 'setup_ctl_default@install_demodata']);
    route::match(array('GET', 'POST'), '/default/setuptools', ['uses' => 'setup_ctl_default@setuptools']);
});