本文整理汇总了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;
//.........这里部分代码省略.........