当前位置: 首页>>代码示例>>PHP>>正文


PHP Configure::getDefaultApp方法代码示例

本文整理汇总了PHP中Configure::getDefaultApp方法的典型用法代码示例。如果您正苦于以下问题:PHP Configure::getDefaultApp方法的具体用法?PHP Configure::getDefaultApp怎么用?PHP Configure::getDefaultApp使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Configure的用法示例。


在下文中一共展示了Configure::getDefaultApp方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: route

 public static function route()
 {
     if (isset($_GET[DAGGER_APP]) && preg_match('/^\\w*$/i', $_GET[DAGGER_APP])) {
         Configure::$app = $_GET[DAGGER_APP];
     } else {
         Configure::getDefaultApp();
     }
     if (DAGGER_ROUTER == 1 && !empty(RouterConfig::$config[Configure::$app])) {
         $uri = str_replace('/index.php', '', $_SERVER['REQUEST_URI']);
         //对于中文,已经变为urlencode,参数化的时候需要先decode出来
         $uri = urldecode($uri);
         defined('DAGGER_DEBUG') && BaseModelCommon::debug($uri, 'router_request_uri');
         //从uri中过滤掉key value查询串
         $uri = explode('?', $uri);
         $uri = array_shift($uri);
         $uriArr = explode('/', trim($uri, '/'));
         $uriArrWithoutApp = array();
         //判断是否选择了app
         foreach ($uriArr as $uripart) {
             if (strpos($uripart, DAGGER_APP_PREFIX) === 0) {
                 Configure::$app = substr($uripart, strlen(DAGGER_APP_PREFIX));
                 self::$get[DAGGER_APP] = Configure::$app;
             } else {
                 if (strlen($uripart) > 0) {
                     $uriArrWithoutApp[] = $uripart;
                 }
             }
         }
         $uri = '/' . implode('/', $uriArrWithoutApp);
         //从URI中去除baseurl中的多级目录
         $baseUrlArr = explode('/', RouterConfig::$baseUrl[Configure::$app], 2);
         if (!empty($baseUrlArr[1])) {
             $baseUrl = '/' . trim($baseUrlArr[1], '/');
             if (strpos($uri, $baseUrl) === 0) {
                 defined('DAGGER_DEBUG') && BaseModelCommon::debug('url规则匹配上BaseUrl:' . $baseUrl, 'router_base_url');
                 //匹配RouterConfig中设置的对应BaseUrl
                 $uri = substr($uri, strlen($baseUrl));
                 $uri === false && ($uri = "");
             }
         }
         //将uri变为参数数组
         $paramsArr = explode('/', trim($uri, '/'));
         self::$get = array_merge(self::$get, $_GET);
         $configArr = RouterConfig::$config[Configure::$app];
         if (isset($configArr[$paramsArr[0]])) {
             /**
              * 从URI的第一个参数开始,搜索RouterConfig中的配置项。
              * 不能匹配的URI参数尝试匹配下一个RouterConfig配置项
              */
             $_GET[DAGGER_CONTROLLER] = $paramsArr[0];
             self::$get[DAGGER_CONTROLLER] = $_GET[DAGGER_CONTROLLER];
             array_shift($paramsArr);
             $configArr = $configArr[$_GET[DAGGER_CONTROLLER]];
             if (!isset($_GET[DAGGER_ACTION])) {
                 if (isset($paramsArr[0]) && isset($configArr[$paramsArr[0]])) {
                     $_GET[DAGGER_ACTION] = $paramsArr[0];
                     self::$get[DAGGER_ACTION] = $_GET[DAGGER_ACTION];
                     array_shift($paramsArr);
                 } elseif (isset(RouterConfig::$defaultRouter) && isset(RouterConfig::$defaultRouter[Configure::$app]['default_action'][$_GET[DAGGER_CONTROLLER]])) {
                     $_GET[DAGGER_ACTION] = RouterConfig::$defaultRouter[Configure::$app]['default_action'][$_GET[DAGGER_CONTROLLER]];
                 } else {
                     throw new BaseModelException("APP:" . Configure::$app . ",controller:" . $_GET[DAGGER_CONTROLLER] . "没有设置默认action", 90206, 'router_trace');
                 }
             }
             $configArr = explode('/', $configArr[$_GET[DAGGER_ACTION]]);
         } else {
             //检测是否有controller参数,没有使用默认设置
             if (!isset($_GET[DAGGER_CONTROLLER])) {
                 if (isset(RouterConfig::$defaultRouter) && isset(RouterConfig::$defaultRouter[Configure::$app]['default_controller'])) {
                     $_GET[DAGGER_CONTROLLER] = RouterConfig::$defaultRouter[Configure::$app]['default_controller'];
                 } else {
                     throw new BaseModelException("APP:" . Configure::$app . "没有设置默认Controller", 90205, 'router_trace');
                 }
                 if (isset($_GET[DAGGER_ACTION])) {
                     throw new BaseModelException("指定action参数时必须指定controller参数", 90207, 'router_trace');
                 }
             }
             if (!isset($_GET[DAGGER_ACTION])) {
                 //使用默认action设置
                 if (isset(RouterConfig::$defaultRouter) && isset(RouterConfig::$defaultRouter[Configure::$app]['default_action'][$_GET[DAGGER_CONTROLLER]])) {
                     $_GET[DAGGER_ACTION] = RouterConfig::$defaultRouter[Configure::$app]['default_action'][$_GET[DAGGER_CONTROLLER]];
                 } else {
                     throw new BaseModelException("APP:" . Configure::$app . ",controller:" . $_GET[DAGGER_CONTROLLER] . "没有设置默认action", 90206, 'router_trace');
                 }
             }
         }
         while (!empty($paramsArr[0])) {
             if (empty($configArr)) {
                 self::init(Configure::$app);
                 defined('DAGGER_DEBUG') && BaseModelCommon::debug(RouterConfig::$config, "router_RouterConfig");
                 throw new BaseModelException("[app]:" . Configure::$app . " [controller]:{$_GET[DAGGER_CONTROLLER]} [action]:{$_GET[DAGGER_ACTION]} ,不识别“/" . implode("/", $paramsArr) . "”,请配置路由规则", 90200, 'router_trace');
             }
             if (self::match($configArr[0], $paramsArr[0])) {
                 array_shift($paramsArr);
             }
             array_shift($configArr);
         }
         defined('DAGGER_DEBUG') && BaseModelCommon::debug($_GET, 'router_$_GET');
     }
     $_GET[DAGGER_APP] = Configure::$app;
//.........这里部分代码省略.........
开发者ID:guojianing,项目名称:dagger,代码行数:101,代码来源:BaseModelRouter.php


注:本文中的Configure::getDefaultApp方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。