protected function dispatch()
{
$urlCase = C('URL_CASE_INSENSITIVE');
// 定义当前模块路径
defined('MODULE_PATH') or define('MODULE_PATH', APP_PATH . MODULE_NAME . '/');
// 定义当前模块的模版缓存路径
C('CACHE_PATH', CACHE_PATH . MODULE_NAME . '/');
if (!file_exists(LOG_PATH)) {
mkdir(LOG_PATH, 0755);
}
C('LOG_PATH', realpath(LOG_PATH) . '/' . MODULE_NAME . '/');
// 模块检测
Hook::listen('module_check');
// 加载模块配置文件
if (is_file(MODULE_PATH . 'Conf/config.php')) {
C(include MODULE_PATH . 'Conf/config.php');
}
// 加载模块别名定义
if (is_file(MODULE_PATH . 'Conf/alias.php')) {
$map = (include MODULE_PATH . 'Conf/alias.php');
foreach ($map as $class => $file) {
include $file;
}
}
// 加载模块函数文件
if (is_file(MODULE_PATH . 'Common/function.php')) {
include MODULE_PATH . 'Common/function.php';
}
// 加载模块的扩展配置文件
load_ext_file(MODULE_PATH);
$depr = C('URL_PATHINFO_DEPR');
defined('MODULE_PATHINFO_DEPR') or define('MODULE_PATHINFO_DEPR', $depr);
if (!defined('__APP__')) {
$urlMode = C('URL_MODEL');
if ($urlMode == URL_COMPAT) {
// 兼容模式判断
$varPath = C('VAR_PATHINFO');
defined('PHP_FILE') || define('PHP_FILE', _PHP_FILE_ . '?' . $varPath . '=');
} elseif ($urlMode == URL_REWRITE) {
$url = dirname(_PHP_FILE_);
if ($url == '/' || $url == '\\') {
$url = '';
}
defined('PHP_FILE') || define('PHP_FILE', $url);
} else {
defined('PHP_FILE') || define('PHP_FILE', _PHP_FILE_);
}
// 当前应用地址
defined('__APP__') || define('__APP__', strip_tags(PHP_FILE));
}
$moduleName = MODULE_NAME;
$controllerName = CONTROLLER_NAME;
defined('__MODULE__') or define('__MODULE__', defined('BIND_MODULE') || !C('MULTI_MODULE') ? __APP__ : __APP__ . '/' . ($urlCase ? strtolower($moduleName) : $moduleName));
defined('__CONTROLLER__') or define('__CONTROLLER__', __MODULE__ . $depr . (defined('BIND_CONTROLLER') ? '' : ($urlCase ? parse_name($controllerName) : $controllerName)));
defined('__ACTION__') || define('__ACTION__', __CONTROLLER__ . $depr . $this->action_name);
defined('__SELF__') || define('__SELF__', strip_tags(isset($_SERVER[C('URL_REQUEST_URI')]) ? $_SERVER[C('URL_REQUEST_URI')] : ''));
}