mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-06 23:02:48 +08:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
3
base.php
3
base.php
@@ -37,9 +37,8 @@ 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('VALIDATE_LAYER') or define('VALIDATE_LAYER', 'validate');
|
defined('VALIDATE_LAYER') or define('VALIDATE_LAYER', 'validate');
|
||||||
defined('APP_MULTI_MODULE') or define('APP_MULTI_MODULE', true); // 是否多模块
|
defined('APP_MULTI_MODULE') or define('APP_MULTI_MODULE', true); // 是否多模块
|
||||||
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', 'PHP_'); // 环境变量的配置前缀
|
||||||
defined('IS_API') or define('IS_API', false); // 是否API接口
|
defined('IS_API') or define('IS_API', false); // 是否API接口
|
||||||
defined('APP_AUTO_RUN') or define('APP_AUTO_RUN', true); // 是否自动运行
|
defined('APP_AUTO_RUN') or define('APP_AUTO_RUN', true); // 是否自动运行
|
||||||
defined('APP_ROUTE_ON') or define('APP_ROUTE_ON', true); // 是否允许路由
|
defined('APP_ROUTE_ON') or define('APP_ROUTE_ON', true); // 是否允许路由
|
||||||
|
|||||||
@@ -28,9 +28,6 @@ class App
|
|||||||
*/
|
*/
|
||||||
public static function run()
|
public static function run()
|
||||||
{
|
{
|
||||||
// 加载环境变量配置文件
|
|
||||||
Config::loadEnv(APP_PATH . 'env' . EXT);
|
|
||||||
|
|
||||||
// 初始化应用(公共模块)
|
// 初始化应用(公共模块)
|
||||||
self::initModule(COMMON_MODULE, Config::get());
|
self::initModule(COMMON_MODULE, Config::get());
|
||||||
|
|
||||||
@@ -276,8 +273,8 @@ class App
|
|||||||
// 读取扩展配置文件
|
// 读取扩展配置文件
|
||||||
if ($config['extra_config_list']) {
|
if ($config['extra_config_list']) {
|
||||||
foreach ($config['extra_config_list'] as $name => $file) {
|
foreach ($config['extra_config_list'] as $name => $file) {
|
||||||
$file = strpos($file, '.') ? $file : $path . $file . EXT;
|
$filename = $path . $file . EXT;
|
||||||
Config::load($file, is_string($name) ? $name : pathinfo($file, PATHINFO_FILENAME));
|
Config::load($filename, is_string($name) ? $name : pathinfo($filename, PATHINFO_FILENAME));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -61,26 +61,6 @@ class Config
|
|||||||
return is_file($file) ? self::set(include $file, $name, $range) : self::$config[$range];
|
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 $name 配置参数名(支持二级配置 .号分割)
|
||||||
@@ -92,10 +72,20 @@ class Config
|
|||||||
$range = $range ?: self::$range;
|
$range = $range ?: self::$range;
|
||||||
|
|
||||||
if (!strpos($name, '.')) {
|
if (!strpos($name, '.')) {
|
||||||
|
// 判断环境变量
|
||||||
|
$result = getenv(ENV_PREFIX . $name);
|
||||||
|
if (false !== $result) {
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
return isset(self::$config[$range][strtolower($name)]);
|
return isset(self::$config[$range][strtolower($name)]);
|
||||||
} else {
|
} else {
|
||||||
// 二维数组设置和获取支持
|
// 二维数组设置和获取支持
|
||||||
$name = explode('.', $name);
|
$name = explode('.', $name);
|
||||||
|
$result = getenv(ENV_PREFIX . $name[0] . '_' . $name[1]);
|
||||||
|
// 判断环境变量
|
||||||
|
if (false !== $result) {
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
return isset(self::$config[$range][strtolower($name[0])][$name[1]]);
|
return isset(self::$config[$range][strtolower($name[0])][$name[1]]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -115,18 +105,19 @@ class Config
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!strpos($name, '.')) {
|
if (!strpos($name, '.')) {
|
||||||
// 判断环境变量
|
$result = getenv(ENV_PREFIX . $name);
|
||||||
if (isset($_ENV[ENV_PREFIX . $name])) {
|
if (false !== $result) {
|
||||||
return $_ENV[ENV_PREFIX . $name];
|
return $result;
|
||||||
}
|
}
|
||||||
$name = strtolower($name);
|
$name = strtolower($name);
|
||||||
return isset(self::$config[$range][$name]) ? self::$config[$range][$name] : null;
|
return isset(self::$config[$range][$name]) ? self::$config[$range][$name] : null;
|
||||||
} else {
|
} else {
|
||||||
// 二维数组设置和获取支持
|
// 二维数组设置和获取支持
|
||||||
$name = explode('.', $name);
|
$name = explode('.', $name);
|
||||||
|
$result = getenv(ENV_PREFIX . $name[0] . '_' . $name[1]);
|
||||||
// 判断环境变量
|
// 判断环境变量
|
||||||
if (isset($_ENV[ENV_PREFIX . $name[0] . '_' . $name[1]])) {
|
if (false !== $result) {
|
||||||
return $_ENV[ENV_PREFIX . $name[0] . '_' . $name[1]];
|
return $result;
|
||||||
}
|
}
|
||||||
$name[0] = strtolower($name[0]);
|
$name[0] = strtolower($name[0]);
|
||||||
return isset(self::$config[$range][$name[0]][$name[1]]) ? self::$config[$range][$name[0]][$name[1]] : null;
|
return isset(self::$config[$range][$name[0]][$name[1]]) ? self::$config[$range][$name[0]][$name[1]] : null;
|
||||||
|
|||||||
18
start.php
18
start.php
@@ -16,8 +16,19 @@ namespace think;
|
|||||||
require __DIR__ . '/base.php';
|
require __DIR__ . '/base.php';
|
||||||
require CORE_PATH . 'Loader.php';
|
require CORE_PATH . 'Loader.php';
|
||||||
|
|
||||||
// 注册自动加载
|
// 加载环境变量配置文件
|
||||||
Loader::register();
|
if (is_file(ROOT_PATH . 'env' . EXT)) {
|
||||||
|
$env = include ROOT_PATH . 'env' . EXT;
|
||||||
|
foreach ($env as $key => $val) {
|
||||||
|
$name = ENV_PREFIX . $key;
|
||||||
|
putenv("$name=$val");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 自动识别调试模式
|
||||||
|
if (!defined('APP_DEBUG')) {
|
||||||
|
$debug = getenv(ENV_PREFIX . 'APP_DEBUG');
|
||||||
|
define('APP_DEBUG', $debug);
|
||||||
|
}
|
||||||
|
|
||||||
// 加载模式定义文件
|
// 加载模式定义文件
|
||||||
$mode = require MODE_PATH . APP_MODE . EXT;
|
$mode = require MODE_PATH . APP_MODE . EXT;
|
||||||
@@ -27,6 +38,9 @@ if (isset($mode['namespace'])) {
|
|||||||
Loader::addNamespace($mode['namespace']);
|
Loader::addNamespace($mode['namespace']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 注册自动加载
|
||||||
|
Loader::register();
|
||||||
|
|
||||||
// 加载模式别名定义
|
// 加载模式别名定义
|
||||||
if (isset($mode['alias'])) {
|
if (isset($mode['alias'])) {
|
||||||
Loader::addMap($mode['alias']);
|
Loader::addMap($mode['alias']);
|
||||||
|
|||||||
@@ -94,10 +94,9 @@ class configTest extends \PHPUnit_Framework_TestCase
|
|||||||
$this->assertEquals([], Config::get(null, $range));
|
$this->assertEquals([], Config::get(null, $range));
|
||||||
$this->assertEquals(null, Config::get(null, 'does_not_exist'));
|
$this->assertEquals(null, Config::get(null, 'does_not_exist'));
|
||||||
// test $_ENV configuration
|
// test $_ENV configuration
|
||||||
defined('ENV_PREFIX') or define('ENV_PREFIX', '_TEST_');
|
$name = 'test_name';
|
||||||
$name = 'test_name';
|
$value = 'value';
|
||||||
$value = 'value';
|
putenv(ENV_PREFIX . $name . '=' . $value);
|
||||||
$_ENV[ENV_PREFIX . $name] = $value;
|
|
||||||
$this->assertEquals($value, Config::get($name, $range));
|
$this->assertEquals($value, Config::get($name, $range));
|
||||||
// test getting configuration
|
// test getting configuration
|
||||||
$reflectedPropertyConfig->setValue([$range => ['abcd' => 'efg']]);
|
$reflectedPropertyConfig->setValue([$range => ['abcd' => 'efg']]);
|
||||||
|
|||||||
Reference in New Issue
Block a user