apppath php,App.php

这篇博客详细介绍了ThinkPHP框架中`App.php`文件的`init()`方法,该方法主要负责应用初始化,包括加载模块配置、数据库配置、扩展配置、行为扩展文件以及公共文件。同时,它还涉及到了语言包的加载。在完成配置加载后,框架会执行`run()`方法来运行应用。
摘要由CSDN通过智能技术生成

## 引导文件定义

> 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()`方法,执行应用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值