From 4e0df23a4ecd4a410ba62298fcf66ae4ab6357ef Mon Sep 17 00:00:00 2001 From: thinkphp Date: Wed, 23 Mar 2016 13:53:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BA=94=E7=94=A8=E7=9A=84?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E5=8F=98=E9=87=8F=E9=85=8D=E7=BD=AE=E6=96=87?= =?UTF-8?q?=E4=BB=B6=20=E5=A2=9E=E5=8A=A0ROOT=5FPATH=E5=B8=B8=E9=87=8F?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=20runtime=E7=9B=AE=E5=BD=95=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E7=A7=BB=E5=88=B0ROOT=5FPATH=E5=BD=95=E4=B8=8B?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- base.php | 3 ++- library/think/App.php | 3 +++ library/think/Config.php | 25 ++++++++++++++++++++----- 3 files changed, 25 insertions(+), 6 deletions(-) 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 作用域