thinkphp6和thinkphp5有什么区别

这篇具有很好参考价值的文章主要介绍了thinkphp6和thinkphp5有什么区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Thinkphp6.0完全开发手册

  1. 采用PHP7强类型(严格模式)

tp5 环境要求PHP >= 5.4.0 ThinkPHP6.0的环境要求 PHP >= 7.2.5
6.0版本开始,必须通过Composer方式安装和更新,所以你无法通过Git下载安装。

  1. 支持更多的PSR规范

V6.0.10版本开始 支持 psr7 response

  1. 多应用支持

tp5默认使用多应用模式部署
tp6 安装后默认使用单应用模式部署
如果要使用多应用模式,你需要安装多应用模式扩展think-multi-app。
composer require topthink/think-multi-app

  1. ORM组件独立 (ORM,即Object-Relational Mapping(对象关系映射))

新版的数据库和模型操作已经独立为ThinkORM库,默认安装应用的时候会自动安装,如果你不需要使用该ORM库的话,可以单独卸载topthink/think-orm后安装其它的ORM库

基于PHP8.0+ 和PDO实现的ORM,支持多数据库,3.0版本主要特性包括:*
基于PDO和PHP强类型实现
支持原生查询和查询构造器
自动参数绑定和预查询
简洁易用的查询功能
强大灵活的模型用法
支持预载入关联查询和延迟关联查询
支持多数据库及动态切换
支持MongoDb
支持分布式及事务
支持断点重连
支持JSON查询
支持数据库日志
支持PSR-16缓存及PSR-3日志规范

6. 中间件机制

ThinkPHP 6中增加了中间件的概念,
中间件主要用于拦截或过滤应用的HTTP请求,并进行必要的业务处理。可以在请求处理的前后进行一些公共的操作,比如鉴权、日志记录等
可以通过命令行指令快速生成中间件
php think make:middleware Check

  1. 更强大和易用的查询

ThinkPHP 6中采用了更加现代化的ORM方式,使得数据库操作更加灵活、方便

  1. 全新的事件系统

新版的事件系统可以看成是5.1版本行为系统的升级版,事件系统相比行为系统强大的地方在于事件本身可以是一个类,并且 可以更好的支持事件订阅者。
事件相比较中间件的优势是事件比中间件更加精准定位(或者说粒度更细),并且更适合一些业务场景的扩展。例如,我们通常会遇到用户注册或者登录后需要做一系列操作,通过事件系统可以做到不侵入原有代码完成登录的操作扩展,降低系统的耦合性的同时,也降低了BUG的可能性。
件系统的所有操作都通过think\facade\Event类进行静态调用
V6.0.3+版本开始,事件机制不能关闭

  1. 支持容器invoke回调

ThinkPHP使用容器来更方便的管理类依赖及运行依赖注入,新版的容器支持PSR-11规范。
容器类的工作由think\Container类完成,但大多数情况我们只需要通过app助手函数或者think\App类即可容器操作,如果在服务类中可以直接调用this->app进行容器操作。

  1. 模板引擎组件独立

thinkphp5 默认加载官方模版引擎
新版框架默认只能支持PHP原生模板,如果需要使用thinkTemplate模板引擎,需要安装think-view扩展(该扩展会自动安装think-template依赖库)。
composer require topthink/think-view

  1. 内部功能中间件化

部分核心功能中间件化(页面Trace、多语言、请求缓存和Session初始化)

  1. SESSION机制改进

ThinkPHP5 采用think\Session类提供Session功能支持。默认是开启的
thinkphp6
Session功能默认是没有开启的(API应用通常不需要使用Session)可以直接使用think\facade\Session类操作Session

  1. 缓存及日志支持多通道

日志系统增加多通道支持,缓存、日志、数据库的配置文件统一调整为多通道模式,并作了大量的改进和修正 。

日志的配置文件是配置文件目录下的log.php文件,系统在进行日志写入之前会读取该配置文件进行初始化。可以添加多个日志通道,每个通道可以设置不同的日志类型。日志配置参数根据不同的日志类型有所区别,内置的日志类型包括:file,日志类型使用type参数配置即可。

新版的缓存支持多通道,你可以事先定义好所有的缓存类型及配置参数,然后在使用的时候可以随时切换。默认使用的是文件缓存类型,你可以添加redis缓存支持

  1. 引入Filesystem组件(磁盘配置)

系统类库 think\Filesystem 容器绑定标识 filesystem

  1. 对Swoole以及协程支持改进

提升swoole下多应用的性能

命名空间:ThinkPHP 6采用了更加现代化的命名空间方式,使得代码结构更加清晰。

目录结构:ThinkPHP 6中的目录结构进行了一些调整,比如把application目录下的config、controller、model等目录都移到了app目录下,这样更加符合现代化的开发方式。

注解路由:ThinkPHP 6引入了注解路由的概念,可以通过注解的方式来定义路由,使得路由定义更加灵活。

中间件:ThinkPHP 6中增加了中间件的概念,可以在请求处理的前后进行一些公共的操作,比如鉴权、日志记录等。

数据库操作:ThinkPHP 6中采用了更加现代化的ORM方式,使得数据库操作更加灵活、方便。文章来源地址https://www.toymoban.com/news/detail-461260.html

到了这里,关于thinkphp6和thinkphp5有什么区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • thinkphp6-配置设置与获取,Thinkphp6自定义配置文件以及调用(config文件夹下的配置)

    环境变量 设置环境变量 /.env [DATABASE] USERNAME = root PASSWORD = 123456 获取环境变量 app/controller/Index.php 访问测试 http://codeit.org.cn/index {“username”:“root”,“password”:“123456”} 1.在thinkphpconfig下新建一个test.php配置文件 .test.php文件内容 调用test.php配置文件 配置 配置设置 config/app.

    2024年02月13日
    浏览(51)
  • ThinkPHP6中使用GatewayWorker

    首先是先安装 下载demo 服务器开通TCP端口 8282 、 1238 将 ApplicationsYourApp 目录随便放ThinkPHP6的哪个位置,我这里放在了 appgatewayws 目录中 配置 composer.json 保存后执行 composer dumpautoload 更新 将 Events.php 、 start_businessworker.php 、 start_gateway.php 和 start_register.php 文件中的 require_once

    2024年02月22日
    浏览(44)
  • ThinkPHP6.0 链式SQL语句

    查询单个数据 查询结果集(查询结果返回多条数据的意思) ​ 查询一个字段 ​ 查询一列 添加数据 修改数据 删除数据 根据主键删除 ​ 条件删除 ​ 查询数据 格式 where(\\\'字段名\\\',\\\'查询表达式\\\',\\\'查询条件\\\'); 模糊查询 区间查询 IN查询 Not Null Null 链式操作示例 field操作(输出选择

    2024年02月11日
    浏览(59)
  • Thinkphp6使用RabbitMQ消息队列

    Thinkphp6连接使用RabbitMQ(不止tp6,其他框架对应改下也一样),使用Docker部署RabbitMQ,在上一篇已经讲了-传送门-。 开始前先进入RabbitMQ的web管理界面,选择Queues菜单,点击底部的Add a new queue,新建一个test的队列。 安装thinkphp6框架 安装workerman扩展 安装rabbitmq扩展 生产者 在a

    2023年04月23日
    浏览(76)
  • thinkphp6 动态开启debug模式

    1、找到config/app.php   2、自定义开启debug参数名称:示例参数为debug,可以根据自己项目情况自定义  3、必须同时设置App::debug 和 Env::set(\\\'APP_DEBUG\\\')

    2024年02月07日
    浏览(47)
  • Thinkphp6 如何 生成二维码

    来自:https://www.is5.me/notes/php/633.html

    2024年02月11日
    浏览(45)
  • ThinkPHP6之数据库操作上

    注意,tp6在进行语法学习的时候都是在app/index.php中写代码的,代码写在index函数下面,而且 tp6自带的文件都是由自动加载器的,不需要包含autoload.php文件 要对数据库进行操作,要修改两个地方,一个数.env文件,一个是config/database.php文件 config/database.php connections里面的一个子

    2024年02月01日
    浏览(83)
  • thinkphp6入门(23)-- 如何导入excel

    1. 安装phpexcel 2. 前端 3. 后端 注:现在主要使用phpoffice/phpspreadsheet库,phpoffice/phpexcel已经不再维护,但本文由于环境无法更新,所以就安装了phpoffice/phpexcel。基本操作一样。 参考:https://www.tpxhm.com/fdetail/725.html 注: 一、在ubuntu环境下提示 Class \\\'ZipArchive\\\' not found  查看对应的

    2024年04月14日
    浏览(39)
  • thinkphp6-简简单单地开发接口

    基于上篇文章环境搭建后,便开始简单学习上手开发接口…记录重要的过程! Windows-试用phpthink发现原来可这样快速搭建mysql、redis等环境、xdebug thinkphp6官网文档:https://www.kancloud.cn/manual/thinkphp6_0/1037479 ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,是

    2024年02月09日
    浏览(40)
  • ThinkPHP6.0+ 使用Redis 原始用法

    composer 安装 predis/predis 依赖,或者安装php_redis.dll的扩展。 我这里选择的是predis/predis 依赖。 进入config/cache.php 配置添加redis缓存支持 示例: 页面测试代码 效果 redis 高级用法 在php 原生中redis 的使用是 thinkephp 中要使用php redis 的扩展方法。则需使用 handler() ; 代码示例 根据菜

    2024年02月12日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包