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 相关文章推荐
dedecms系统的广告设置代码 基础版本
Apr 09 PHP
PHP中的array数组类型分析说明
Jul 27 PHP
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
Nov 10 PHP
php stream_get_meta_data返回值
Sep 29 PHP
php获取网页中图片、DIV内容的简单方法
Jun 19 PHP
PHP实现利用MySQL保存session的方法
Aug 23 PHP
PHP实现微信网页授权开发教程
Jan 19 PHP
PHP的Yii框架中Model模型的学习教程
Mar 29 PHP
PHP 的比较运算与逻辑运算详解
May 12 PHP
利用phpexcel对数据库数据的导入excel(excel筛选)、导出excel
Apr 27 PHP
PHP+Redis 消息队列 实现高并发下注册人数统计的实例
Jan 29 PHP
php引用和拷贝的区别知识点总结
Sep 23 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
做一个有下拉功能的留言版
2006/10/09 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
php全角字符转换为半角函数
2014/02/07 PHP
PHP微信支付开发实例
2016/06/22 PHP
详解如何在云服务器上部署Laravel
2017/06/30 PHP
浅谈Laravel中的三种中间件的作用
2019/10/13 PHP
javascript parseInt与Number函数的区别
2010/01/21 Javascript
JS中confirm,alert,prompt函数使用区别分析
2010/04/01 Javascript
jQuery+CSS 半开折叠效果原理及代码(自写)
2013/03/04 Javascript
JQuery给元素绑定click事件多次执行的解决方法
2014/05/29 Javascript
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
2015/02/02 Javascript
Jsonp post 跨域方案
2015/07/06 Javascript
Javascript HTML5 Canvas实现的一个画板
2020/04/12 Javascript
JS代码实现根据时间变换页面背景效果
2016/06/16 Javascript
精彩的Bootstrap案例分享 重点在注释!(选项卡、栅格布局)
2016/07/01 Javascript
Extjs 点击复选框在表格中增加相关信息行
2016/07/12 Javascript
js实现四舍五入完全保留两位小数的方法
2016/08/02 Javascript
vue在使用ECharts时的异步更新和数据加载详解
2017/11/22 Javascript
JS实现图片转换成base64的各种应用场景实例分析
2018/06/22 Javascript
react实现移动端下拉菜单的示例代码
2020/01/16 Javascript
js实现拾色器插件(ColorPicker)
2020/05/21 Javascript
在Vue中使用CSS3实现内容无缝滚动的示例代码
2020/11/27 Vue.js
selenium python浏览器多窗口处理代码示例
2018/01/15 Python
大家都说好用的Python命令行库click的使用
2019/11/07 Python
Python pytesseract验证码识别库用法解析
2020/06/29 Python
利用Python优雅的登录校园网
2020/10/21 Python
css3实现波纹特效、H5实现动态波浪效果
2018/01/31 HTML / CSS
美国最大的户外装备和服装购物网站:Backcountry
2019/10/15 全球购物
美国优质马术服装购买网站:Breeches.com
2019/12/16 全球购物
大课间活动制度
2014/01/18 职场文书
2014年五四青年节演讲稿范文
2014/04/22 职场文书
需求分析说明书
2014/05/09 职场文书
大学生毕业求职信
2014/06/12 职场文书
导游词之吉林吉塔
2019/11/11 职场文书
Python将CSV文件转化为HTML文件的操作方法
2021/06/30 Python
python 判断字符串当中是否包含字符(str.contain)
2022/06/01 Python