相对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、分发请求响应输出