diff --git a/base.php b/base.php index b1e1b373..9ed85ffc 100644 --- a/base.php +++ b/base.php @@ -37,3 +37,27 @@ defined('AUTO_SCAN_PACKAGE') or define('AUTO_SCAN_PACKAGE', false); // 是否自 // 环境常量 define('IS_CLI', PHP_SAPI == 'cli' ? true : false); define('IS_WIN', strstr(PHP_OS, 'WIN') ? true : false); + +// 载入Loader类 +require CORE_PATH . 'Loader.php'; + +// 加载环境变量配置文件 +if (is_file(ROOT_PATH . 'env' . EXT)) { + $env = include ROOT_PATH . 'env' . EXT; + foreach ($env as $key => $val) { + $name = ENV_PREFIX . $key; + if (is_bool($val)) { + $val = $val ? 1 : 0; + } + putenv("$name=$val"); + } +} + +// 注册自动加载 +\think\Loader::register(); + +// 注册错误和异常处理机制 +\think\Error::register(); + +// 加载模式配置文件 +\think\Config::set(include THINK_PATH . 'convention' . EXT); diff --git a/alias.php b/classmap.php similarity index 100% rename from alias.php rename to classmap.php diff --git a/library/think/App.php b/library/think/App.php index e3724e98..78989242 100644 --- a/library/think/App.php +++ b/library/think/App.php @@ -399,7 +399,7 @@ class App // 加载别名文件 if (is_file(CONF_PATH . $module . 'alias' . EXT)) { - Loader::addMap(include CONF_PATH . $module . 'alias' . EXT); + Loader::addClassMap(include CONF_PATH . $module . 'alias' . EXT); } // 加载行为扩展文件 diff --git a/library/think/Loader.php b/library/think/Loader.php index 316bd4c2..a94da475 100644 --- a/library/think/Loader.php +++ b/library/think/Loader.php @@ -91,7 +91,7 @@ class Loader } // 注册classmap - public static function addMap($class, $map = '') + public static function addClassMap($class, $map = '') { if (is_array($class)) { self::$map = array_merge(self::$map, $class); @@ -125,7 +125,16 @@ class Loader { // 注册系统自动加载 spl_autoload_register($autoload ?: 'think\\Loader::autoload'); + // 注册命名空间定义 + self::addNamespace([ + 'think' => LIB_PATH . 'think' . DS, + 'behavior' => LIB_PATH . 'behavior' . DS, + 'traits' => LIB_PATH . 'traits' . DS, + ]); + // 加载类库映射文件 + self::addClassMap(include THINK_PATH . 'classmap' . EXT); + // Composer自动加载支持 if (is_dir(VENDOR_PATH . 'composer')) { // 注册Composer自动加载 self::registerComposerLoader(); @@ -134,7 +143,7 @@ class Loader // 读取Composer自动加载文件 $autoload = include VENDOR_PATH . 'think_autoload.php'; if (is_array($autoload)) { - self::addMap($autoload); + self::addClassMap($autoload); } } elseif (is_file(RUNTIME_PATH . 'autoload_composer.php')) { $autoload = include RUNTIME_PATH . 'autoload_composer.php'; @@ -161,7 +170,7 @@ class Loader $content = " $val) { - $name = ENV_PREFIX . $key; - if (is_bool($val)) { - $val = $val ? 1 : 0; - } - putenv("$name=$val"); - } -} - -// 注册命名空间定义 -Loader::addNamespace([ - 'think' => LIB_PATH . 'think' . DS, - 'behavior' => LIB_PATH . 'behavior' . DS, - 'traits' => LIB_PATH . 'traits' . DS, -]); - -// 注册自动加载 -Loader::register(); - -// 加载别名定义 -Loader::addMap(include THINK_PATH . 'alias' . EXT); - -// 注册错误和异常处理机制 -Error::register(); - -// 加载模式配置文件 -Config::set(include THINK_PATH . 'convention' . EXT); - -// 是否自动运行 -if (APP_AUTO_RUN) { - App::run()->send(); -} +// 执行应用 +App::run()->send(); diff --git a/tests/thinkphp/library/think/appTest.php b/tests/thinkphp/library/think/appTest.php index b29bd459..f019cb7b 100644 --- a/tests/thinkphp/library/think/appTest.php +++ b/tests/thinkphp/library/think/appTest.php @@ -48,7 +48,6 @@ class appTest extends \PHPUnit_Framework_TestCase { public function testRun() { - Config::set('root_namespace', ['/path/']); App::run(Request::create("http://www.example.com"))->send(); $expectOutputString = '