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 相关文章推荐
用libtemplate实现静态网页生成
Oct 09 PHP
Email+URL的判断和自动转换函数
Oct 09 PHP
解决控件遮挡问题:关于有窗口元素和无窗口元素
Jan 28 PHP
PHP中的string类型使用说明
Jul 27 PHP
浅析php变量作用域的一些问题
Aug 08 PHP
使用php显示搜索引擎来的关键词
Feb 13 PHP
Laravel中使用自己编写类库的3种方法
Feb 10 PHP
PHPExcel简单读取excel文件示例
May 26 PHP
Yii中CGridView禁止列排序的设置方法
Jul 12 PHP
Zend Framework框架实现类似Google搜索分页效果
Nov 25 PHP
PHP利用百度ai实现文本和图片审核
May 08 PHP
PHP7创建COOKIE和销毁COOKIE的实例方法
Feb 03 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
全国FM电台频率大全 - 15 山东省
2020/03/11 无线电
用PHP进行MySQL删除记录操作代码
2008/06/07 PHP
PHPWind 发帖回帖Api PHP版打包下载
2010/02/08 PHP
php中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
2011/07/03 PHP
Php中文件下载功能实现超详细流程分析
2012/06/13 PHP
php简单备份与还原MySql的方法
2016/05/09 PHP
Chrome中模态对话框showModalDialog返回值问题的解决方法
2010/05/25 Javascript
javascript 函数调用的对象和方法
2010/07/01 Javascript
jquery 回车事件实现代码
2011/08/23 Javascript
关于js中for in的缺陷浅析
2013/12/02 Javascript
利用Angularjs中模块ui-route管理状态的方法
2016/12/27 Javascript
AngularJS路由实现页面跳转实例
2017/03/03 Javascript
基于ES6 Array.of的用法(实例讲解)
2017/09/05 Javascript
jquery实现左右轮播图效果
2017/09/28 jQuery
vue多级复杂列表展开/折叠及全选/分组全选实现
2018/11/05 Javascript
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
2019/04/30 Javascript
JavaScript进阶(二)词法作用域与作用域链实例分析
2020/05/09 Javascript
Python使用爬虫猜密码
2016/02/19 Python
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
2017/12/08 Python
Python实现翻转数组功能示例
2018/01/12 Python
Python使用numpy实现BP神经网络
2018/03/10 Python
python将每个单词按空格分开并保存到文件中
2018/03/19 Python
python微信公众号之关注公众号自动回复
2018/10/25 Python
由Python编写的MySQL管理工具代码实例
2019/04/09 Python
TensorFlow自定义损失函数来预测商品销售量
2020/02/05 Python
python上传时包含boundary时的解决方法
2020/04/08 Python
Python如何实现爬取B站视频
2020/05/20 Python
Pycharm生成可执行文件.exe的实现方法
2020/06/02 Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
2020/06/11 Python
PyTorch的torch.cat用法
2020/06/28 Python
CSS3——齿轮转动关键代码
2013/05/02 HTML / CSS
美国手机支架公司:PopSockets
2019/11/27 全球购物
Miller Harris官网:英国小众香水品牌
2020/09/24 全球购物
写好自荐信的要点
2013/11/06 职场文书
12.4全国法制宣传日活动总结
2014/11/01 职场文书
应聘教师自荐信
2015/03/26 职场文书