内容简介:用户发起的请求都会经过应用的入口文件,通常是 ==public/index.php==文件。当然,你也可以更改或者增加新的入口文件。通常入口文件的代码都比较简单,一个普通的入口文件代码如下:通常,我们不建议在应用入口文件中加入过多的代码,尤其是和业务逻辑相关的代码。
源码分析---入口篇
源码分析
应用入口
用户发起的请求都会经过应用的入口文件,通常是 ==public/index.php==文件。当然,你也可以更改或者增加新的入口文件。
通常入口文件的代码都比较简单,一个普通的入口文件代码如下:
// 应用入口文件 // 定义项目路径 define('APP_PATH', __DIR__ . '/../application/'); // 加载框架引导文件 require __DIR__ . '/../thinkphp/start.php';
通常,我们不建议在应用入口文件中加入过多的代码,尤其是和业务逻辑相关的代码。
加载引导文件
// ThinkPHP 引导文件 // 1. 加载基础文件 require __DIR__ . '/base.php'; // 2. 执行应用 App::run()->send();
加载基础文件
// __DIR__ . '/base.php'文件 //定义常量 define('THINK_VERSION', '5.0.24'); ....//常量太多省略了部分 // 载入Loader类 require CORE_PATH . 'Loader.php'; // 加载环境变量配置文件 if (is_file(ROOT_PATH . '.env')) { $env = parse_ini_file(ROOT_PATH . '.env', true); foreach ($env as $key => $val) { $name = ENV_PREFIX . strtoupper($key); if (is_array($val)) { foreach ($val as $k => $v) { $item = $name . '_' . strtoupper($k); putenv("$item=$v"); } } else { putenv("$name=$val"); } } } // 注册自动加载 \think\Loader::register(); // 注册错误和异常处理机制 \think\Error::register(); // 加载惯例配置文件 \think\Config::set(include THINK_PATH . 'convention' . EXT);
该部分主要是定义一些系统常量,关键点是引入了自动加载类并且注册了自动加载,使得框架可以自动引入类文件,业务层只要直接use对应命名空间的类即可进行实例化,注册错误及异常处理机制, 加载默认配置等操作。
最后就是应用启动,App::run()->send();
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Vue源码: 构造函数入口
- TiDB源码阅读(一) TiDB的入口
- Spring Boot 2.x 启动全过程源码分析(上):入口类剖析
- 兄弟连区块链教程open-ethereum-pool矿池源码分析main入口
- 链表中环的入口节点
- docker entrypoint入口文件详解
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。