返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >thinkphp3.2与thinkphp5.0有哪些区别
  • 434
分享到

thinkphp3.2与thinkphp5.0有哪些区别

2023-06-29 04:06:56 434人浏览 薄情痞子
摘要

这篇文章主要介绍“thinkPHP3.2与thinkphp5.0有哪些区别”,在日常操作中,相信很多人在thinkphp3.2与thinkphp5.0有哪些区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”t

这篇文章主要介绍“thinkPHP3.2与thinkphp5.0有哪些区别”,在日常操作中,相信很多人在thinkphp3.2与thinkphp5.0有哪些区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”thinkphp3.2与thinkphp5.0有哪些区别”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

区别:1、3.2支持普通URL模式和正则路由定义,而5.0不支持;2、5.0新增了请求对象Request和响应对象Response;3、5.0对错误零容忍,3.2不是;4、5.0版本废弃了原来的大部分常量定义,仅仅保留了框架的路径常量定义。

教程操作环境:windows7系统、thinkphp v5.0版、Dell G3电脑。

thinkphp5.0 与thinkphp 3.2的区别

5.0版本和之前版本的差异较大,本篇对熟悉3.2版本的用户给出了一些5.0的主要区别。

URL和路由

5.0的URL访问不再支持普通URL模式,路由也不支持正则路由定义,而是全部改为规则路由配合变量规则(正则定义)的方式:

主要改进如下;

  • 增加路由变量规则;

  • 增加组合变量支持;

  • 增加资源路由;

  • 增加路由分组;

  • 增加闭包定义支持;

  • 增加MISS路由定义;

  • 支持URL路由规则反解析;

请求对象和响应对象

5.0新增了请求对象Request和响应对象ResponseRequest统一处理请求和获取请求信息,Response对象负责输出客户端或者浏览器响应。

模块和控制器

控制器的命名空间有所调整,并且可以无需继承任何的控制器类。

  • 应用命名空间统一为app(可定义)而不是模块名;

  • 控制器的类名默认不带Controller后缀,可以配置开启use_controller_suffix参数启用控制器类后缀;

  • 控制器操作方法采用return方式返回数据 而非直接输出;

  • 废除原来的操作前后置方法;

  • 增加befoReactionList属性定义前置操作;

  • 支持任意层次的控制器定义和访问;

  • URL访问支持自动定位控制器;

数据库

0的数据库查询功能增强,原先需要通过模型才能使用的链式查询可以直接通过Db类调用,原来的M函数调用可以改用db函数,例如:

3.2版本

M('User')->where(['name'=>'thinkphp'])->find();

5.0版本

db('User')->where('name','thinkphp')->find();

主要改进如下:

  • 支持链式查询操作;

  • 数据查询支持返回对象、数组PDOStatement对象;

  • 数据集查询支持返回数组和Collection对象;

  • 增加查询构造器,查询语法改变;

  • 支持闭包查询;

  • 支持分块查询;

  • 支持视图查询;

  • 增加sql监听事件;

模型

5.0的模型变化是最大的,基本上模型是完全面向对象的概念,包括关联模型,模型类的后缀不再带Model,直接由命名空间区分,原来的D函数调用改为model函数,并且必须创建对应的模型类,例如:

3.2版本

D('User')->where(['name'=>'thinkphp'])->find();

5.0版本

model('User')->where('name','thinkphp')->find();

主要改进包括:

  • 重构关联模型;

  • 支持聚合模型;

  • 废除视图模型(改为数据库的视图查询方法);

  • 模型的扩展采用Trait机制;

  • 增加获取器和修改器;

  • 增加时间戳自动写入;

  • 增加类型字段转换;

  • 数组访问支持;

  • JSON序列化支持;

自动验证和自动完成

0的数据自动验证和自动完成和3.2版本区别较大,5.0的数据验证采用验证器定义并且通过think\Validate类进行统一的验证。自动完成则通过在模型里面定义修改器来完成。

异常

5.0对错误零容忍,默认情况下会对任何级别的错误抛出异常(但可以在应用公共文件中设置错误级别),并且重新设计了异常页面,展示了详尽的错误信息,便于调试。

调试和日志

5.0的页面Trace强化,支持浏览器控制台查看Trace信息。

5.0日志驱动增加Socket方式,采用SocketLog支持远程调试。

常量

5.0版本废弃了原来的大部分常量定义,仅仅保留了框架的路径常量定义,其余的常量可以使用App类或者Request类的相关属性或者方法来完成,或者自己重新定义需要的常量。

废除的常量包括:

REQUEST_METHOD IS_GET IS_POST IS_PUT IS_DELETE IS_ajax __EXT__ COMMON_MODULE MODULE_NAME CONTROLLER_NAME ACTION_NAME APP_NAMESPACE APP_DEBUG MODULE_PATH

函数

5.0版本核心框架不依赖任何自定义函数,但仍然封装了一些常用功能到助手函数,你可以随意重新定义或者增加助手函数。

到此,关于“thinkphp3.2与thinkphp5.0有哪些区别”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: thinkphp3.2与thinkphp5.0有哪些区别

本文链接: https://lsjlt.com/news/322545.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • thinkphp3.2与thinkphp5.0有哪些区别
    这篇文章主要介绍“thinkphp3.2与thinkphp5.0有哪些区别”,在日常操作中,相信很多人在thinkphp3.2与thinkphp5.0有哪些区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”t...
    99+
    2023-06-29
  • thinkphp5.0和5.1有哪些区别
    本篇内容主要讲解“thinkphp5.0和5.1有哪些区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“thinkphp5.0和5.1有哪些区别”吧!区别:1、在thinkphp5.1中把初始化...
    99+
    2023-06-29
  • sql与mysql有哪些区别
    什么是SQL? SQL是一种用于操作数据库的语言。SQL是用于所有数据库的基本语言。不同数据库之间存在较小的语法更改,但基本的SQL语法基本保 持不变。SQL是S tructured Q uery Language ...
    99+
    2022-05-15
    sql mysql 区别
  • pgsql与mysql有哪些区别
    这篇文章给大家分享的是有关pgsql与mysql有哪些区别的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。pgsql与mysql的区别有:在pgsql上的功能实现比mysql严谨,...
    99+
    2024-04-02
  • phpmyadmin与cms有哪些区别
    这篇文章给大家分享的是有关phpmyadmin与cms有哪些区别的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。phpmyadmin 是操作Mysql数据库的web程序,可以方便快...
    99+
    2024-04-02
  • phpmyadmin与mysql有哪些区别
    这篇文章主要介绍phpmyadmin与mysql有哪些区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!phpMyAdmin是一个以PHP为基础,以Web-Base方式架构在网站主机...
    99+
    2024-04-02
  • OLTP与OLAP有哪些区别
    这篇文章主要介绍“OLTP与OLAP有哪些区别”,在日常操作中,相信很多人在OLTP与OLAP有哪些区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”OLTP与OLAP有哪些...
    99+
    2024-04-02
  • sql中#与$有哪些区别
    这篇文章给大家分享的是有关sql中#与$有哪些区别的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在这里用到了#{},使用#时:1、用来传入参数,sq...
    99+
    2024-04-02
  • oracle与mysql有哪些区别
    小编给大家分享一下oracle与mysql有哪些区别,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2024-04-02
  • mysql与mongodb有哪些区别
    这篇文章主要介绍了mysql与mongodb有哪些区别的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mysql与mongodb有哪些区别文章都会有所收获,下面我们一起来看看吧。...
    99+
    2024-04-02
  • php与JavaScript有哪些区别
    这篇文章主要讲解了“php与JavaScript有哪些区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php与JavaScript有哪些区别”吧! ...
    99+
    2024-04-02
  • es6与commonjs有哪些区别
    本篇内容介绍了“es6与commonjs有哪些区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • nodejs与vuejs有哪些区别
    小编给大家分享一下nodejs与vuejs有哪些区别,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2024-04-02
  • CNN与RNN有哪些区别
    本篇内容主要讲解“CNN与RNN有哪些区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CNN与RNN有哪些区别”吧!一、CNN与RNN对比1. CNN卷积神经...
    99+
    2024-04-02
  • python与javascript有哪些区别
    本篇内容主要讲解“python与javascript有哪些区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python与javascript有哪些区别”吧! ...
    99+
    2024-04-02
  • React与Angular有哪些区别
    这篇文章主要介绍“React与Angular有哪些区别”,在日常操作中,相信很多人在React与Angular有哪些区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Reac...
    99+
    2024-04-02
  • java与javascript有哪些区别
    这篇文章主要介绍“java与javascript有哪些区别”,在日常操作中,相信很多人在java与javascript有哪些区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • bootstrap4.0与3.0有哪些区别
    今天小编给大家分享一下bootstrap4.0与3.0有哪些区别的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我...
    99+
    2024-04-02
  • bootstrap与jquery有哪些区别
    小编给大家分享一下bootstrap与jquery有哪些区别,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 区别:1、Bootstrap是用于开发应用程序的开源...
    99+
    2024-04-02
  • bootstrap与dreamweaver有哪些区别
    这篇文章主要介绍bootstrap与dreamweaver有哪些区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 区别:1、bootstrap是基于HT...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作