thinkPHP框架

生命周期
1、入口文件
用户发送的请求都会经过应用的入口文件,通常是 public/index.php 文件。通常入口文件的代码都比较简单,一个普通的入口文件代码如下:

// 定义项目路径
define('APP_PATH', __DIR__ . '/../application/');
// 加载框架引导文件
require __DIR__ . '/../thinkphp/start.php';

一般入口文件定义一些常量为主,不建议在应用入口文件加入过多的代码,尤其是和业务逻辑相关的代码。
2、引导文件
接下来就是执行框架的引导文件,start.php 文件就是系统默认的一个引导文件。在引导文件中会依次执行下面操作:
a、加载系统常量定义;
b、加载环境变量定义文件;
c、注册自动加载机制;
d、注册错误和异常处理机制;
e、加载惯例配置文件;
f、执行应用
start.php 引导文件首先会调用 base.php 基础引导文件,某些特殊需求下面可能直接在入口文件中引入基础引导文件。
3、注册自动加载
系统会调用 Loader::register() 方法注册自动加载,在这一步完成后,所有符合规范的类库(包括 composer 依赖加载的第三方类库)都将自动加载。

4、注册错误和异常机制
执行 Error::register() 注册错误和异常处理机制。由三部分组成:
a、应用关闭方法:think\Error::appShutdown
b、错误处理方法:think\Error::appError
c、异常处理方法:think\Error::appException
在整个应用请求的生命周期过程中,如果抛出一个异常或者严重错误,均会导致应用提前结束,并响应输出异常和错误信息。
5、应用初始化
执行应用的第一步操作就是对应用进行初始化,包括:
a、加载应用(公共)配置;
b、加载扩展配置文件(由extra_config_list定义);
c、加载应用状态配置;
d、加载别名定义;
e、加载行为定义;
f、加载公共(函数)文件;
g、注册应用命名空间;
h、加载扩展函数文件(由extra_file_list定义);
i、设置默认时区;
j、加载系统语言包;
6、URL访问检测
7、路由检测
如果开启了url_route_on参数的话,会首先进行URL的路由检测,如果一旦检测到匹配的路由,根据定义的路由地址会注册到相应的URL调度。
8、分发请求
9、响应输出

10、应用结束
事实上,在应用的数据响应输出之后,应用并没真正的结束,系统会在应用输出或者中断后进行日志保存写入操作。
系统的日志包括用户调试输出的和系统自动生成的日志,统一会在应用结束的时候进行写入操作。

TP框架 与 Laravel框架
TP框架:ThinkPHP简单、快速,基于MVC和面向对象,易用性较高,是一款简洁实用的轻量级框架。

Laravel框架:Lavavel一直秉承着优雅的原则,很好的支持了composer,实现了更丰富的扩展,社区文档活跃,相较于TP,Lavavel更庞大,安全性也更高,更适合开发大中型项目,被称为“巨匠型开发框架”。

TP框架和Laravel框架的区别:
1、防跨站攻击:Laravel在提交表单时需要在表单中加入{{csrf_field()}};而TP不会。
2、路由:Laravel必须先定义,再使用,路由文件为routes.php;TP在配置文件中开启路由后,路由格式是:‘路由表达式’ => ‘路由地址和参数’(使用路由的前提是URL支持phthinfo并且开启路由),路由可以使URL更符合SEO。
3、渲染模版方式:在Laravel框架里,使用return view()来渲染模版;而ThinkPHP里则使用了$this->display()的方式渲染模版。
4、操作数据库方式:都可以使用实例化(建立相对应的模型类)和DB:table(‘表名’)来操作数据库,使用原生查询时不太相同,Laravel使用Db::操作(‘原生sql’),TP使用Db::query(‘原生sql’)。
5、条件判断语句书写方式:Laravel框架里 if else判断语句和foreach语句 书写时必须以@if开头 以@endif结尾,如果没有则报语法错误,@foreach @endforeach同理。而TP框架则和PHP语法规则使用方式一致直接ifesle语句判断和foreach循环遍历
6、中间件,Laravel特点,可以实现访问前后的处理,例如请求和返回,权限认证等。
7、Laravel升级十分简易,而TP大版本的升级要重构代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值