博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
thinkphp源码分析(二)—入口篇
阅读量:5996 次
发布时间:2019-06-20

本文共 1234 字,大约阅读时间需要 4 分钟。

源码分析---入口篇

源码分析

应用入口

用户发起的请求都会经过应用的入口文件,通常是 ==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();

转载地址:http://mrqlx.baihongyu.com/

你可能感兴趣的文章
HashMap循环遍历方式及其性能对比
查看>>
第三十三篇:使用uiresImporter生成uires.idx及skin.xml
查看>>
C语言基础学习day04
查看>>
TODO FIXME XXX 含义
查看>>
setlocal 与 变量延迟
查看>>
设计模式——责任链模式
查看>>
如何使用java代码进行视频格式的转换(FLV)
查看>>
Swift-范型
查看>>
C#调用百度地图API经验分享(二)
查看>>
java操作excel,pdf,word等文件的方法
查看>>
Linux下mysql的安装和使用(C语言)
查看>>
with用法&缺点
查看>>
作息:论持久战
查看>>
消息队列NetMQ 原理分析4-Socket、Session、Option和Pipe
查看>>
【译】历史上的名人如何利用不同的思维方式成就自己
查看>>
用CSS开启硬件加速来提高网站性能(转)
查看>>
netty支持的协议
查看>>
增强版字典DictionaryEx
查看>>
ASP.NET页面刷新的实现方法总结
查看>>
夏梦竹谈Hive vs. HBase的区别
查看>>