增加APP_MULTI_MODULE常量 用于设置是否多模块设计

This commit is contained in:
thinkphp
2016-01-02 21:11:57 +08:00
parent 81c5761f97
commit 3191ffda86
7 changed files with 11 additions and 9 deletions

View File

@@ -36,6 +36,7 @@ defined('EXT') or define('EXT', '.php');
defined('MODEL_LAYER') or define('MODEL_LAYER', 'model'); defined('MODEL_LAYER') or define('MODEL_LAYER', 'model');
defined('VIEW_LAYER') or define('VIEW_LAYER', 'view'); defined('VIEW_LAYER') or define('VIEW_LAYER', 'view');
defined('CONTROLLER_LAYER') or define('CONTROLLER_LAYER', 'controller'); defined('CONTROLLER_LAYER') or define('CONTROLLER_LAYER', 'controller');
defined('APP_MULTI_MODULE') or define('APP_MULTI_MODULE', true); // 是否多模块
defined('APP_DEBUG') or define('APP_DEBUG', false); // 是否调试模式 defined('APP_DEBUG') or define('APP_DEBUG', false); // 是否调试模式
defined('APP_HOOK') or define('APP_HOOK', false); // 是否开启HOOK defined('APP_HOOK') or define('APP_HOOK', false); // 是否开启HOOK
defined('ENV_PREFIX') or define('ENV_PREFIX', 'T_'); // 环境变量的配置前缀 defined('ENV_PREFIX') or define('ENV_PREFIX', 'T_'); // 环境变量的配置前缀

View File

@@ -195,7 +195,7 @@ class App
private static function initModule($module, $config) private static function initModule($module, $config)
{ {
// 定位模块目录 // 定位模块目录
$module = COMMON_MODULE == $module ? '' : $module . DS; $module = (COMMON_MODULE == $module || !APP_MULTI_MODULE) ? '' : $module . DS;
// 加载初始化文件 // 加载初始化文件
if (is_file(APP_PATH . $module . 'init' . EXT)) { if (is_file(APP_PATH . $module . 'init' . EXT)) {
@@ -323,8 +323,8 @@ class App
} }
} }
$module = strtolower($result[0] ?: $config['default_module']); if (APP_MULTI_MODULE) {
if ($module) { $module = strtolower($result[0] ?: $config['default_module']);
if ($maps = $config['url_module_map']) { if ($maps = $config['url_module_map']) {
if (isset($maps[$module])) { if (isset($maps[$module])) {
// 记录当前别名 // 记录当前别名

View File

@@ -65,6 +65,7 @@ class Build
// 创建模块 // 创建模块
protected static function buildModule($module, $list) protected static function buildModule($module, $list)
{ {
$module = APP_MULTI_MODULE ? $module : '';
if (!is_dir(APP_PATH . $module)) { if (!is_dir(APP_PATH . $module)) {
// 创建模块目录 // 创建模块目录
mkdir(APP_PATH . $module); mkdir(APP_PATH . $module);

View File

@@ -398,6 +398,6 @@ class Loader
*/ */
public static function parseClass($module, $layer, $name) public static function parseClass($module, $layer, $name)
{ {
return APP_NAMESPACE . '\\' . ($module ? $module . '\\' : '') . $layer . '\\' . self::parseName(str_replace('/', '\\', $name), 1); return APP_NAMESPACE . '\\' . (APP_MULTI_MODULE ? $module . '\\' : '') . $layer . '\\' . self::parseName(str_replace('/', '\\', $name), 1);
} }
} }

View File

@@ -467,13 +467,13 @@ class Route
} }
// 解析[模块/控制器/操作] // 解析[模块/控制器/操作]
if ($reverse) { if ($reverse) {
$module = array_shift($path); $module = APP_MULTI_MODULE ? array_shift($path) : null;
$controller = !empty($path) ? array_shift($path) : null; $controller = !empty($path) ? array_shift($path) : null;
$action = !empty($path) ? array_shift($path) : null; $action = !empty($path) ? array_shift($path) : null;
} else { } else {
$action = array_pop($path); $action = array_pop($path);
$controller = !empty($path) ? array_pop($path) : null; $controller = !empty($path) ? array_pop($path) : null;
$module = !empty($path) ? array_pop($path) : null; $module = APP_MULTI_MODULE && !empty($path) ? array_pop($path) : null;
} }
$action = '[rest]' == $action ? REQUEST_METHOD : $action; $action = '[rest]' == $action ? REQUEST_METHOD : $action;
$route = [$module, $controller, $action]; $route = [$module, $controller, $action];

View File

@@ -52,7 +52,7 @@ class Url
if (!defined('BIND_CONTROLLER')) { if (!defined('BIND_CONTROLLER')) {
$var['controller'] = !empty($path) ? array_pop($path) : CONTROLLER_NAME; $var['controller'] = !empty($path) ? array_pop($path) : CONTROLLER_NAME;
} }
if (!defined('BIND_MODULE')) { if (APP_MULTI_MODULE && !defined('BIND_MODULE')) {
if (!empty($path)) { if (!empty($path)) {
$var['module'] = array_pop($path); $var['module'] = array_pop($path);
} elseif (MODULE_NAME) { } elseif (MODULE_NAME) {

View File

@@ -250,7 +250,7 @@ class View
} elseif (Cookie::get('think_theme')) { } elseif (Cookie::get('think_theme')) {
$theme = Cookie::get('think_theme'); $theme = Cookie::get('think_theme');
} }
if (!is_dir(APP_PATH . ($module ? $module . DS : '') . $this->config['view_layer'] . DS . $theme)) { if (!is_dir(APP_PATH . (APP_MULTI_MODULE ? $module . DS : '') . $this->config['view_layer'] . DS . $theme)) {
$theme = $this->config['default_theme']; $theme = $this->config['default_theme'];
} }
Cookie::set('think_theme', $theme, 864000); Cookie::set('think_theme', $theme, 864000);
@@ -276,7 +276,7 @@ class View
$tmplPath = $this->config['view_path']; // 模块设置独立的视图目录 $tmplPath = $this->config['view_path']; // 模块设置独立的视图目录
if (!$tmplPath) { if (!$tmplPath) {
// 定义TMPL_PATH 则改变全局的视图目录到模块之外 // 定义TMPL_PATH 则改变全局的视图目录到模块之外
$tmplPath = defined('TMPL_PATH') ? TMPL_PATH . $module . DS : APP_PATH . ($module ? $module . DS : '') . $this->config['view_layer'] . DS; $tmplPath = defined('TMPL_PATH') ? TMPL_PATH . $module . DS : APP_PATH . (APP_MULTI_MODULE ? $module . DS : '') . $this->config['view_layer'] . DS;
} }
return $tmplPath . $theme; return $tmplPath . $theme;
} }