tp5.0源码分析

相对tp3,tp5变化较大,正如官方打出的宣传口号----为API开发而设计的高性能框架。

对比tp3

1、减少了核心文件依赖,扩展更加灵活,支持命令行指令扩展
2、更好的支持api开发
3、惰性加载和自动加载的缓存机制
4、ORM重构
5、入口文件位置放置public下为了让应用部署更加安全(public目录为web可访问目录,其他的文件都可以放到非WEB访问目录下面)

入口文件

/public/index.php
在这里加载框架引导文件及定义自定义常量

define('APP_PATH', __DIR__ . '/../application/');
// 加载框架引导文件
require __DIR__ . '/../thinkphp/start.php';

引导文件

加载基础文件base.php 并 启动应用

// 加载基础文件
require __DIR__ . '/base.php';
// 执行应用
App::run()->send();

base.php (自定义的模式文件在这里加载,并初始化模式运行环境)

1、载入定义的系统常量
2、载入框架加载器

require CORE_PATH . 'Loader.php';

3、注册自动加载

\think\Loader::register();

4、注册错误和异常处理机制

\think\Error::register();

5、加载惯例配置文件

\think\Config::set(include THINK_PATH . 'convention' . EXT);

App.php (应用环境初始化,url解析,应用调度)

1、加载公共配置文件
2、加载扩展配置文件
3、加载别名定义行为定义
4、加载公共函数
5、注册应用命名空间
6、加载扩展函数文件
7、设置默认时区
8、加载语言包
9、url访问检测
10、若开启了url_route_on=true则会进行路由检测
11、分发请求响应输出

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,442评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,063评论 6 342
  • 有时,当你陷入一种无法逃脱,无法改变的情况下,倘若,心中充满阳光和希望,你也会至死,都永远乐观积极向上,尽管,你希...
    LeMon青柠阅读 4,724评论 0 1
  • “ 幸亏这个世界有了二八定律:如果别人比你漂亮,那么你可以用情商打败她。如果别人比你聪明,你可以用专注去打败她。如...
    even_ff97阅读 2,166评论 0 0
  • ​​ 喜欢下雨的天气,是因为它给了我们一个逃避的理由,不用出去面对一个个需要交集的面孔;同样地,喜欢下雨的天气,是...
    宅小姐Echo阅读 5,027评论 0 0