apppath php,App.php

厉高逸
2023-12-01

## 引导文件定义

> App.php执行应用文件位于`thinkphp/library/think/App.php`,调用`init()`初始化方法,具体内容如下:

```

private static function init($module = '')

{

// 定位模块目录

$module = $module ? $module . DS : '';

// 加载初始化文件

if (is_file(APP_PATH . $module . 'init' . EXT)) {

include APP_PATH . $module . 'init' . EXT;

} elseif (is_file(RUNTIME_PATH . $module . 'init' . EXT)) {

include RUNTIME_PATH . $module . 'init' . EXT;

} else {

// 加载模块配置 CONF_PATH . $module . 'config' . CONF_EXT = /application/config.phpconfig

$config = Config::load(CONF_PATH . $module . 'config' . CONF_EXT);

/*

print_r($config);

Array

(

[app_host] =>

[app_debug] =>

[app_trace] =>

[app_status] =>

......

[route_check_cache] =>

)

*/

// 读取数据库配置文件 /application/database.php

$filename = CONF_PATH . $module . 'database' . CONF_EXT;

Config::load($filename, 'database');

// 读取扩展配置文件

if (is_dir(CONF_PATH . $module . 'extra')) {

$dir = CONF_PATH . $module . 'extra';

$files = scandir($dir);

foreach ($files as $file) {

if ('.' . pathinfo($file, PATHINFO_EXTENSION) === CONF_EXT) {

$filename = $dir . DS . $file;

Config::load($filename, pathinfo($file, PATHINFO_FILENAME));

}

}

}

// 加载应用状态配置

if ($config['app_status']) {

Config::load(CONF_PATH . $module . $config['app_status'] . CONF_EXT);

}

// 加载行为扩展文件

if (is_file(CONF_PATH . $module . 'tags' . EXT)) {

Hook::import(include CONF_PATH . $module . 'tags' . EXT);

}

// 加载公共文件 /../application/

$path = APP_PATH . $module;

if (is_file($path . 'common' . EXT)) {

include $path . 'common' . EXT;

}

// 加载当前模块语言包

if ($module) {

Lang::load($path . 'lang' . DS . Request::instance()->langset() . EXT);

}

}

// 返回配置数据

return Config::get();

}

```

> 加载以上配置后,执行`run()`方法,执行应用

 类似资料:

相关阅读

相关文章

相关问答