diff --git a/base.php b/base.php index 2d0fbf1e..edca2aef 100644 --- a/base.php +++ b/base.php @@ -23,9 +23,10 @@ defined('MODE_PATH') or define('MODE_PATH', THINK_PATH . 'mode' . DS); // 系统 defined('CORE_PATH') or define('CORE_PATH', LIB_PATH . 'think' . DS); defined('TRAIT_PATH') or define('TRAIT_PATH', LIB_PATH . 'traits' . DS); defined('APP_PATH') or define('APP_PATH', dirname($_SERVER['SCRIPT_FILENAME']) . DS); +defined('ROOT_PATH') or define('ROOT_PATH', dirname(APP_PATH) . DS); defined('APP_NAMESPACE') or define('APP_NAMESPACE', 'app'); defined('COMMON_MODULE') or define('COMMON_MODULE', 'common'); -defined('RUNTIME_PATH') or define('RUNTIME_PATH', realpath(APP_PATH) . DS . 'runtime' . DS); +defined('RUNTIME_PATH') or define('RUNTIME_PATH', ROOT_PATH . 'runtime' . DS); defined('LOG_PATH') or define('LOG_PATH', RUNTIME_PATH . 'log' . DS); defined('CACHE_PATH') or define('CACHE_PATH', RUNTIME_PATH . 'cache' . DS); defined('TEMP_PATH') or define('TEMP_PATH', RUNTIME_PATH . 'temp' . DS); diff --git a/library/think/App.php b/library/think/App.php index a0c58056..38ae4e60 100644 --- a/library/think/App.php +++ b/library/think/App.php @@ -28,6 +28,9 @@ class App */ public static function run() { + // 加载环境变量配置文件 + Config::loadEnv(APP_PATH . 'env' . EXT); + // 初始化应用(公共模块) self::initModule(COMMON_MODULE, Config::get()); diff --git a/library/think/Config.php b/library/think/Config.php index 451b66ed..74949e07 100644 --- a/library/think/Config.php +++ b/library/think/Config.php @@ -29,7 +29,6 @@ class Config /** * 解析配置文件或内容 - * * @param string $config 配置文件路径或内容 * @param string $type 配置解析类型 * @param string $range 作用域 @@ -46,7 +45,6 @@ class Config /** * 加载配置文件(PHP格式) - * * @param string $file 配置文件名 * @param string $name 配置名(如设置即表示二级配置) * @param string $range 作用域 @@ -63,9 +61,28 @@ class Config return is_file($file) ? self::set(include $file, $name, $range) : self::$config[$range]; } + /** + * 加载环境变量配置文件 + * @param string $file 配置文件名 + * @param string $name 配置名(如设置即表示二级配置) + * @return void + */ + public static function loadEnv($file, $name = '') + { + if (is_file($file)) { + $env = include $file; + foreach ($env as $key => $val) { + if (!empty($name)) { + $_ENV[ENV_PREFIX . $name . '_' . $key] = $val; + } else { + $_ENV[ENV_PREFIX . $key] = $val; + } + } + } + } + /** * 检测配置是否存在 - * * @param string $name 配置参数名(支持二级配置 .号分割) * @param string $range 作用域 * @return bool @@ -85,7 +102,6 @@ class Config /** * 获取配置参数 为空则获取所有配置 - * * @param string $name 配置参数名(支持二级配置 .号分割) * @param string $range 作用域 * @return mixed @@ -119,7 +135,6 @@ class Config /** * 设置配置参数 name为数组则为批量设置 - * * @param string $name 配置参数名(支持二级配置 .号分割) * @param mixed $value 配置值 * @param string $range 作用域