支持模块下面的控制器分组

This commit is contained in:
ThinkPHP
2013-08-01 18:20:54 +08:00
parent 2244002a95
commit 05a4811f21
3 changed files with 16 additions and 0 deletions

View File

@@ -126,6 +126,7 @@ class App {
*/ */
static public function dispatch($config) { static public function dispatch($config) {
$var_m = $config['var_module']; $var_m = $config['var_module'];
$var_g = $config['var_group'];
$var_c = $config['var_controller']; $var_c = $config['var_controller'];
$var_a = $config['var_action']; $var_a = $config['var_action'];
$var_p = $config['var_pathinfo']; $var_p = $config['var_pathinfo'];
@@ -211,6 +212,7 @@ class App {
Tag::import(include MODULE_PATH . 'tags' . EXT); Tag::import(include MODULE_PATH . 'tags' . EXT);
} }
} }
$var_g = $config['var_group'];
$var_c = $config['var_controller']; $var_c = $config['var_controller'];
$var_a = $config['var_action']; $var_a = $config['var_action'];
}else{ }else{
@@ -219,6 +221,13 @@ class App {
// 路由检测和控制器、操作解析 // 路由检测和控制器、操作解析
Route::check($_SERVER['PATH_INFO']); Route::check($_SERVER['PATH_INFO']);
// 获取分组名
if(Config::get('require_group')){
define('GROUP_NAME', strtolower(isset($_GET[$var_g]) ? $_GET[$var_g] : $config['default_group']));
}else{
define('GROUP_NAME', '');
}
// 获取控制器名 // 获取控制器名
define('CONTROLLER_NAME', strtolower(isset($_GET[$var_c]) ? $_GET[$var_c] : $config['default_controller'])); define('CONTROLLER_NAME', strtolower(isset($_GET[$var_c]) ? $_GET[$var_c] : $config['default_controller']));

View File

@@ -271,8 +271,12 @@ class Route {
return ; return ;
} }
$paths = explode('/', $url); $paths = explode('/', $url);
$var_g = Config::get('var_group');
$var_c = Config::get('var_controller'); $var_c = Config::get('var_controller');
$var_a = Config::get('var_action'); $var_a = Config::get('var_action');
if(Config::get('require_group') && !isset($_GET[$var_g])) {
$_GET[$var_g] = array_shift($paths);
}
if(Config::get('require_controller') && !isset($_GET[$var_c])) { if(Config::get('require_controller') && !isset($_GET[$var_c])) {
$_GET[$var_c] = array_shift($paths); $_GET[$var_c] = array_shift($paths);
} }

View File

@@ -14,6 +14,7 @@ return [
'app_debug' => true, // 调试模式 'app_debug' => true, // 调试模式
'app_status' => 'debug',// 调试模式状态 'app_status' => 'debug',// 调试模式状态
'var_module' => 'm', // 模块变量名 'var_module' => 'm', // 模块变量名
'var_group' => 'g', // 分组变量名
'var_controller' => 'c', // 控制器变量名 'var_controller' => 'c', // 控制器变量名
'var_action' => 'a', // 操作变量名 'var_action' => 'a', // 操作变量名
'var_pathinfo' => 's', // PATHINFO变量名 用于兼容模式 'var_pathinfo' => 's', // PATHINFO变量名 用于兼容模式
@@ -21,6 +22,8 @@ return [
'pathinfo_depr' => '/', // pathinfo分隔符 'pathinfo_depr' => '/', // pathinfo分隔符
'require_module' => true, // 是否显示模块 'require_module' => true, // 是否显示模块
'default_module' => 'index', // 默认模块名 'default_module' => 'index', // 默认模块名
'require_group' => false, // 控制器是否需要分组
'default_group' => '', // 默认分组名
'require_controller' => true, // 是否显示控制器 'require_controller' => true, // 是否显示控制器
'default_controller' => 'index', // 默认控制器名 'default_controller' => 'index', // 默认控制器名
'default_action' => 'index', // 默认操作名 'default_action' => 'index', // 默认操作名