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切割页面div内容的实现代码分享
Jul 31 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
Apr 05 PHP
php操作redis缓存方法分享
Jun 03 PHP
PHP查找与搜索数组元素方法总结
Jun 12 PHP
php文件压缩之PHPZip类用法实例
Jun 18 PHP
php数据访问之查询关键字
May 09 PHP
php连接微软MSSQL(sql server)完全攻略
Nov 27 PHP
PHP读取CSV大文件导入数据库的实例
Jul 24 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
Feb 06 PHP
PHP排序算法之堆排序(Heap Sort)实例详解
Apr 21 PHP
Laravel 5.5 异常处理 & 错误日志的解决
Oct 17 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随机数生成代码与使用实例分析
2011/04/08 PHP
php缓冲 output_buffering和ob_start使用介绍
2014/01/30 PHP
Windows和Linux中php代码调试工具Xdebug的安装与配置详解
2014/05/08 PHP
php实现基于openssl的加密解密方法
2016/09/30 PHP
node.js应用后台守护进程管理器Forever安装和使用实例
2014/06/01 Javascript
JavaScript中的单引号和双引号报错的解决方法
2014/09/01 Javascript
jQuery+ajax实现动态执行脚本的方法
2015/01/27 Javascript
js简单实现Select互换数据的方法
2015/08/17 Javascript
JavaScript实现移动端页面按手机屏幕分辨率自动缩放的最强代码
2017/08/18 Javascript
关于vue单文件中引用路径的处理方法
2018/01/08 Javascript
Bootstrap导航菜单点击后无法自动添加active的处理方法
2018/08/10 Javascript
通过vue-cli3构建一个SSR应用程序的方法
2018/09/13 Javascript
vue添加axios,并且指定baseurl的方法
2018/09/19 Javascript
微信小程序带动画弹窗组件使用方法详解
2018/11/27 Javascript
在React中写一个Animation组件为组件进入和离开加上动画/过度效果
2019/06/24 Javascript
微信小程序实现点击卡片 翻转效果
2019/09/04 Javascript
Echarts在Taro微信小程序开发中的踩坑记录
2020/11/09 Javascript
[01:00:11]DOTA2-DPC中国联赛 正赛 CDEC vs DLG BO3 第一场 2月7日
2021/03/11 DOTA
python分析nignx访问日志脚本分享
2015/02/26 Python
用Python的线程来解决生产者消费问题的示例
2015/04/02 Python
简单谈谈Python中函数的可变参数
2016/09/02 Python
Django的分页器实例(paginator)
2017/12/01 Python
python全栈要学什么 python全栈学习路线
2019/06/28 Python
使用django的objects.filter()方法匹配多个关键字的方法
2019/07/18 Python
python实现大学人员管理系统
2019/10/25 Python
使用python的turtle绘画滑稽脸实例
2019/11/21 Python
pandas中read_csv、rolling、expanding用法详解
2020/04/21 Python
pycharm配置python 设置pip安装源为豆瓣源
2021/02/05 Python
萨克斯第五大道精品百货店: Saks Fifth Avenue
2017/04/28 全球购物
 Alo Yoga官网:购买瑜伽服装
2018/06/17 全球购物
简历自我评价模版
2014/01/31 职场文书
国际贸易专业求职信
2014/06/04 职场文书
汽车维修求职信
2014/06/15 职场文书
2016教师读书思廉心得体会
2016/01/23 职场文书
go语言中json数据的读取和写出操作
2021/04/28 Golang
win11怎么用快捷键锁屏? windows11锁屏的几种方法
2021/11/21 数码科技