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 相关文章推荐
在Windows版的PHP中使用ADO
Oct 09 PHP
PHP+AJAX实现无刷新注册(带用户名实时检测)
Jan 02 PHP
字母顺序颠倒而单词顺序不变的php代码
Aug 08 PHP
php身份证号码检查类实例
Jun 18 PHP
PHP实现linux命令tail -f
Feb 22 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
Mar 07 PHP
PHP错误机制知识汇总
Mar 24 PHP
php 类中的常量、静态属性、非静态属性的区别
Apr 09 PHP
Yii框架分页实现方法详解
May 20 PHP
php数据结构之顺序链表与链式线性表示例
Jan 22 PHP
Laravel统计一段时间间隔的数据方法
Oct 09 PHP
ThinkPHP 5 AJAX跨域请求头设置实现过程解析
Oct 28 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生成xml简单实例代码
2009/12/16 PHP
第4章 数据处理-php数组的处理-郑阿奇
2011/07/04 PHP
ThinkPHP路由详解
2015/07/27 PHP
DOM精简教程
2006/10/03 Javascript
js弹出的对话窗口永远保持居中显示
2012/12/15 Javascript
调试Javascript代码(浏览器F12及VS中debugger关键字)
2013/01/25 Javascript
Jquery网页出现的乱码问题的三种解决方法
2013/06/30 Javascript
ExtJs纵坐标值重复问题的解决方法
2014/02/27 Javascript
js中用window.open()打开多个窗口的name问题
2014/03/13 Javascript
MVC Ajax Helper或Jquery异步加载部分视图
2015/11/29 Javascript
强大Vue.js组件浅析
2016/09/12 Javascript
js正则表达式验证密码强度【推荐】
2017/03/03 Javascript
完美实现js焦点轮播效果(一)
2017/03/07 Javascript
浅谈Vue响应式(数组变异方法)
2018/05/07 Javascript
详解vscode中vue代码颜色插件
2018/10/11 Javascript
浅谈webpack+react多页面开发终极架构
2018/11/11 Javascript
Layer+Echarts构建弹出层折线图的方法
2019/09/25 Javascript
超简单的微信小程序轮播图
2019/11/22 Javascript
JavaScript实现简单计算器功能
2019/12/19 Javascript
[01:25:09]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第二场
2014/05/24 DOTA
python3实现暴力穷举博客园密码
2016/06/19 Python
Python对象类型及其运算方法(详解)
2017/07/05 Python
Python中摘要算法MD5,SHA1简介及应用实例代码
2018/01/09 Python
PyQt4实现下拉菜单可供选择并打印出来
2018/04/20 Python
python进行两个表格对比的方法
2018/06/27 Python
python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法
2018/09/13 Python
Python Flask异步发送邮件实现方法解析
2020/08/01 Python
使用spring mvc+localResizeIMG实现HTML5端图片压缩上传的功能
2016/12/16 HTML / CSS
找到不普通的东西:Bonanza
2016/10/20 全球购物
Windows和Linux动态库应用异同
2016/04/17 面试题
麦当劳辞职信范文
2014/01/18 职场文书
电子商务专业学生职业生涯规划
2014/03/07 职场文书
2014年入党积极分子党校培训心得体会
2014/07/08 职场文书
医院合作协议书
2014/08/19 职场文书
爱护公物主题班会
2015/08/17 职场文书
Python绘制分类图的方法
2021/04/20 Python