apppath php,App.php

news/2024/12/2 13:11:20/

## 引导文件定义

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


http://www.ppmy.cn/news/614441.html

相关文章

多传感器融合理论

多传感器融合理论 多传感器信息融合(Multi-sensor Information Fusion,MSIF),就是利用计算机技术将来自多传感器或多源的信息和数据,在一定的准则下加以自动分析和综合,以完成所需要的决策和估计而进行的信息处理过程…

Hive metastore三种配置方式

Hive的meta数据支持以下三种存储方式,其中两种属于本地存储,一种为远端存储。远端存储比较适合生产环境。Hive官方wiki详细介绍了这三种方式,链接为:Hive Metastore。 一、本地derby 这种方式是最简单的存储方式,只需要…

Docker的Entrypoint和CMD的区别

Docker中的Entrypoint和Cmd都是用于指定容器启动时要运行的命令,它们的区别在于它们的作用和使用方式。 Entrypoint是指定容器启动时要执行的可执行文件或脚本,并且该命令在运行容器时不能被覆盖。Entrypoint可以看作是容器的默认执行命令,它…

PHP分布式链路追踪,SkyWalking:分布式架构链路追踪-SkyWalking介绍

前面几篇文章提到了微服务相关系统的使用与搭建,在微服务架构下的问题也比较突出。正常系统下我们的每个请求都会在同一个系统中进行输出。但是在微服务架构中一个请求可能设置一到多个服务进行处理。服务之间相互依赖,服务之间形成一个调用链。如果调用…

单目摄像头标定与测距

单目摄像头标定与测距 一、 标定 首先要对摄像头做标定,具体的公式推导在learning opencv中有详细的解释,这里顺带提一句,这本书虽然确实老,但有些理论、算法类的东西里面还是讲的很不错的,必要的时候可以去看看。1.单…

Java动态代理和静态代理区别

静态代理 package staticproxy;/*** 接口* author newtouch**/ public interface IHello {public void sayHello();public String doSomethong(String s);}package staticproxy;/*** 实现类* author newtouch**/ public class Hello implements IHello{Overridepublic void say…

L4自动驾驶技术

L4自动驾驶技术 一.SAE的五个级别分别是: L0:驾驶员完全掌控车辆,无任何自动化能力。 L1:自动系统有时能够辅助驾驶员完成某些驾驶任务。比如高速自动巡航(自动认知所在车道),和一…

php mms,PHP代码示例_PHP账号余额查询接口 | 微米-中国领先的短信彩信接口平台服务商...

PHP余额查询接口代码示例请求$ch curl_init();curl_setopt($ch, CURLOPT_URL, "http://api.weimi.cc/2/account/balance.html");curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);curl_setopt($ch, CURLOPT_POST, TRUE);/*设定微米账号的接口UID和接口密码*/curl_se…