ThinkPHP5和ThinkPHP6的区别


Posted in PHP onMarch 31, 2021

1.安装方式

thinkphp6只能通过composer安装

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer		# 设置composer为阿里云镜像,解决国内使用composer慢的问题
composer create-project topthink/think myproject			# 安装稳定版,myproject为你的项目名

2.配置文件

thinkphp5里面的config.php被拆分成了app、cache、database、route等等模块,放在了config文件夹;

thinkphp6新引入了一个.env的文件,可以通过读取这个环境设置去配置数据库等等

3.自带web服务

直接php think run就可以在本地启动一个web服务器,还可以用-p参数指定端口

4.目录结构

application文件夹重命名为app

thinkphp5核心框架是项目根目录thinkphp下 , thinkphp6是vendor/topthink

5.控制器

之前继承think\Controller类,现在改为继承BaseController

6.跨域

只需要在middleware.php中注册\think\middleware\AllowCrossDomain就可以搞定跨域问题

7.组件独立

独立ORM

独立模版引擎

8.严格模式

thinkphp6使用了php7严格模式

9.引入Filesystem

10.支持多应用入口

admin应用可以设置admin.php入口文件来访问;api应用可以设置api.php入口文件来访问。

如果要使用多应用模式,你需要安装多应用模式扩展

composer require topthink/think-multi-app

然后你的应用目录结构需要做如下调整,主要区别在app目录增加了应用子目录,然后配置文件和路由定义文件都纳入应用目录下

├─app 应用目录
│  ├─index              主应用
│  │  ├─controller      控制器目录
│  │  ├─model           模型目录
│  │  ├─view            视图目录
│  │  ├─config          配置目录
│  │  ├─route           路由目录
│  │  └─ ...            更多类库目录
│  │ 
│  ├─admin              后台应用
│  │  ├─controller      控制器目录
│  │  ├─model           模型目录
│  │  ├─view            视图目录
│  │  ├─config          配置目录
│  │  ├─route           路由目录
│  │  └─ ...            更多类库目录
│
├─public                WEB目录(对外访问目录)
│  ├─admin.php          后台入口文件
│  ├─index.php          入口文件
│  ├─router.php         快速测试文件
│  └─.htaccess          用于apache的重写
│
├─config                全局应用配置目录
├─runtime               运行时目录
│  ├─index              index应用运行时目录
│  └─admin              admin应用运行时目录

支持在同一个入口文件中访问多个应用,并且支持应用的映射关系以及自定义。如果你通过index.php入口文件访问的话,并且没有设置应用name,系统自动采用自动多应用模式。

自动多应用模式的URL地址默认使用

// 访问admin应用
http://serverName/index.php/admin
// 访问shop应用
http://serverName/index.php/shop

以通过app.php配置文件的default_app配置参数指定默认应用


// 设置默认应用名称
'default_app' => 'home',

11.域名绑定应用

config/app.php 配置文件中定义域名和应用的绑定


'domain_bind' => [
	'www.a.com' => 'index', 	// 域名绑定到www应用
	'admin.a.com' => 'admin', 	// admin绑定到后台应用
], 

12.自动加载

thinkphp5真正实现了按需加载,所有类库采用自动加载机制,并且支持类库映射和composer类库的自动加载;

thinkphp6使用composer方式实现类自动加载

PHP 相关文章推荐
十天学会php之第八天
Oct 09 PHP
PHP 判断变量类型实现代码
Oct 23 PHP
深入php数据采集的详解
Jun 02 PHP
浅谈web上存漏洞及原理分析、防范方法(安全文件上存方法)
Jun 29 PHP
PHP对象递归引用造成内存泄漏分析
Aug 28 PHP
thinkPHP实现瀑布流的方法
Nov 29 PHP
PHP Opcache安装和配置方法介绍
May 28 PHP
PHP中创建和验证哈希的简单方法实探
Jul 06 PHP
php导出生成word的方法
Dec 25 PHP
无需数据库在线投票调查php代码
Jul 20 PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
Jun 27 PHP
PHP多个图片压缩成ZIP的方法
Aug 18 PHP
PHP基本语法
PHP中->和=>的意思
Mar 31 #PHP
Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境
Laravel中Kafka的使用详解
Mar 24 #PHP
thinkphp5 redis缓存新增方法实例讲解
php优化查询foreach代码实例讲解
Mar 24 #PHP
PHP引擎php.ini参数优化深入讲解
Mar 24 #PHP
You might like
PHP中call_user_func_array()函数的用法演示
2012/02/05 PHP
php+highchats生成动态统计图
2014/05/21 PHP
浅析PHP微信支付通知的处理方式
2014/05/25 PHP
PhpStorm terminal无法输入命令的解决方法
2016/10/09 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
thinkphp5引入公共部分header、footer的方法详解
2018/09/14 PHP
php7性能提升的原因详解
2019/10/13 PHP
javascript 图片上传预览-兼容标准
2009/06/01 Javascript
location.href 在IE6中不跳转的解决方法与推荐使用代码
2010/07/08 Javascript
JavaScript中使用正则匹配多条,且获取每条中的分组数据
2010/11/30 Javascript
JavaScript子窗口ModalDialog中操作父窗口对像
2012/12/11 Javascript
Nodejs学习笔记之测试驱动
2015/04/16 NodeJs
js倒计时简单实现代码
2016/08/11 Javascript
jQuery弹出层插件popShow(改进版)用法示例
2017/01/23 Javascript
Angular2生命周期钩子函数的详细介绍
2017/07/10 Javascript
nodejs实现的连接MySQL数据库功能示例
2018/01/25 NodeJs
让axios发送表单请求形式的键值对post数据的实例
2018/08/11 Javascript
bootstrap自定义样式之bootstrap实现侧边导航栏功能
2018/09/10 Javascript
如何在Vue.js中实现标签页组件详解
2019/01/02 Javascript
jQuery实现带3D切割效果的轮播图功能示例【附源码下载】
2019/04/04 jQuery
[04:29]2014DOTA2国际邀请赛 主赛事第三日TOPPLAY
2014/07/21 DOTA
python原始套接字编程示例分享
2014/02/21 Python
Python实现股市信息下载的方法
2015/06/15 Python
浅谈Python中range和xrange的区别
2017/12/20 Python
Python对象与引用的介绍
2019/01/24 Python
python3.6环境安装+pip环境配置教程图文详解
2019/06/20 Python
简单了解python中对象的取反运算符
2019/07/01 Python
基于Tensorflow的MNIST手写数字识别分类
2020/06/17 Python
IBatis持久层技术
2016/07/18 面试题
应届毕业生专业个人求职自荐信格式
2013/11/20 职场文书
美国留学经济担保书
2014/05/20 职场文书
乡镇安全生产目标责任书
2014/07/23 职场文书
2014年党员自我评价材料
2014/09/22 职场文书
人民的好儿女观后感
2015/06/18 职场文书
jquery插件实现代码雨特效
2021/04/24 jQuery
Nginx流量拷贝ngx_http_mirror_module模块使用方法详解
2022/04/07 Servers