From 25831f77d80bc69380c0a54a1e1a0e8b8b112e73 Mon Sep 17 00:00:00 2001 From: yunwuxin <448901948@qq.com> Date: Tue, 5 Apr 2016 14:40:56 +0800 Subject: [PATCH] =?UTF-8?q?console=E6=A8=A1=E5=BC=8F=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E5=85=A5=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mode/console.php | 13 +-------- mode/console/App.php | 65 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+), 12 deletions(-) diff --git a/mode/console.php b/mode/console.php index a4aff296..5f0c488e 100644 --- a/mode/console.php +++ b/mode/console.php @@ -27,17 +27,6 @@ return [ 'think\Error' => MODE_PATH . 'console/Error' . EXT ], // 配置文件 - 'config' => [ - 'log' => [ - 'type' => 'File', // 支持 file socket trace sae - 'path' => LOG_PATH, - ], - 'cache' => [ - 'type' => 'File', - 'path' => CACHE_PATH, - 'prefix' => '', - 'expire' => 0, - ] - ] + 'config' => THINK_PATH . 'convention' . EXT ]; diff --git a/mode/console/App.php b/mode/console/App.php index 4c1c13fe..d3672af4 100644 --- a/mode/console/App.php +++ b/mode/console/App.php @@ -23,6 +23,8 @@ class App */ public static function run() { + self::init(); + // 实例化console $console = new Console('Think Console', '0.1'); // 读取指令集 @@ -40,4 +42,67 @@ class App // 运行 $console->run(); } + + private static function init() + { + // 加载初始化文件 + if (is_file(APP_PATH . 'init' . EXT)) { + include APP_PATH . 'init' . EXT; + + // 加载模块配置 + $config = Config::get(); + } else { + // 加载模块配置 + $config = Config::load(APP_PATH . 'config' . EXT); + + // 加载应用状态配置 + if ($config['app_status']) { + $config = Config::load(APP_PATH . $config['app_status'] . EXT); + } + + // 读取扩展配置文件 + if ($config['extra_config_list']) { + foreach ($config['extra_config_list'] as $name => $file) { + $filename = APP_PATH . $file . EXT; + Config::load($filename, is_string($name) ? $name : pathinfo($filename, PATHINFO_FILENAME)); + } + } + + // 加载别名文件 + if (is_file(APP_PATH . 'alias' . EXT)) { + Loader::addMap(include APP_PATH . 'alias' . EXT); + } + + // 加载行为扩展文件 + if (APP_HOOK && is_file(APP_PATH . 'tags' . EXT)) { + Hook::import(include APP_PATH . 'tags' . EXT); + } + + // 加载公共文件 + if (is_file(APP_PATH . 'common' . EXT)) { + include APP_PATH . 'common' . EXT; + } + } + + // 注册根命名空间 + if (!empty($config['root_namespace'])) { + Loader::addNamespace($config['root_namespace']); + } + + // 加载额外文件 + if (!empty($config['extra_file_list'])) { + foreach ($config['extra_file_list'] as $file) { + $file = strpos($file, '.') ? $file : APP_PATH . $file . EXT; + if (is_file($file)) { + include_once $file; + } + } + } + + // 设置系统时区 + date_default_timezone_set($config['default_timezone']); + + // 监听app_init + APP_HOOK && Hook::listen('app_init'); + } } \ No newline at end of file