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下实现伪 url 的超简单方法[转]
Sep 24 PHP
php项目打包方法
Feb 18 PHP
在PHP中设置、使用、删除Cookie的解决方法
May 06 PHP
解析使用substr截取UTF-8中文字符串出现乱码的问题
Jun 20 PHP
基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)
Jun 25 PHP
解析PHP正则提取或替换img标记属性
Jun 26 PHP
微信支付开发教程(一)微信支付URL配置
May 28 PHP
Yii中创建自己的Widget实例
Jan 05 PHP
php用户密码加密算法分析【Discuz加密算法】
Oct 12 PHP
php实现网页上一页下一页翻页过程详解
Jun 28 PHP
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
Apr 06 PHP
php设计模式之适配器模式实例分析【星际争霸游戏案例】
Apr 07 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
浅析ThinkPHP中execute和query方法的区别
2014/06/13 PHP
php显示指定目录下子目录的方法
2015/03/20 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
2017/03/04 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
简单的js分页脚本
2009/05/21 Javascript
javascript开发随笔一 preventDefault的必要
2011/11/25 Javascript
js出生日期 年月日级联菜单示例代码
2014/01/10 Javascript
使用npm发布Node.JS程序包教程
2015/03/02 Javascript
jQuery简单tab切换效果实现方法
2015/04/08 Javascript
jQuery 1.9.1源码分析系列(十四)之常用jQuery工具
2015/12/02 Javascript
jQuery+css3实现转动的正方形效果(附demo源码下载)
2016/01/27 Javascript
jQuery实现日期联动效果实例
2016/07/26 Javascript
jQuery制作网页版选项卡
2016/07/28 Javascript
JavaScript登录验证码的实现
2016/10/27 Javascript
JavaScript注入漏洞的原理及防范(详解)
2016/12/04 Javascript
JavaScript事件处理程序详解
2017/09/19 Javascript
JS实现图片放大镜插件详解
2017/11/06 Javascript
浅谈vue,angular,react数据双向绑定原理分析
2017/11/28 Javascript
vue axios登录请求拦截器
2018/04/02 Javascript
原生js实现获取form表单数据代码实例
2019/03/27 Javascript
详解jQuery中的prop()使用方法
2020/01/05 jQuery
vue使用echarts图表自适应的几种解决方案
2020/12/04 Vue.js
你真的了解Python的random模块吗?
2017/12/12 Python
使用Keras预训练好的模型进行目标类别预测详解
2020/06/27 Python
canvas 下载二维码和图片加水印的方法
2018/03/21 HTML / CSS
戴尔加拿大官网:Dell加拿大
2016/09/17 全球购物
Under Armour安德玛德国官网:美国高端运动科技品牌
2019/03/09 全球购物
有机婴儿毛毯和衣服:Monica + Andy
2020/03/01 全球购物
初中物理教学反思
2014/01/14 职场文书
学校门卫岗位职责
2014/03/16 职场文书
争先创优公开承诺书
2014/08/30 职场文书
2014年四风问题自我剖析材料
2014/09/15 职场文书
党的群众路线教育实践活动心得体会(医院)
2014/11/03 职场文书
销售助理岗位职责
2015/02/11 职场文书
原料仓管员岗位职责
2015/04/01 职场文书
运动会通讯稿100字
2015/07/20 职场文书