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 相关文章推荐
?繁体转换的class
Oct 09 PHP
PHP 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
Jan 30 PHP
10条PHP高级技巧[修正版]
Aug 02 PHP
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
Oct 17 PHP
Linux fgetcsv取得的数组元素为空字符串的解决方法
Nov 25 PHP
PHP中strtotime函数使用方法分享
Jan 10 PHP
php 检查电子邮件函数(自写)
Jan 16 PHP
thinkPHP交易详情查询功能详解
Dec 02 PHP
PHP Socket网络操作类定义与用法示例
Aug 30 PHP
thinkPHP5框架实现基于ajax的分页功能示例
Jun 12 PHP
Laravel框架分页实现方法分析
Jun 12 PHP
PHP的垃圾回收机制代码实例讲解
Feb 27 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
调频问题解答
2021/03/01 无线电
php轻量级的性能分析工具xhprof的安装使用
2015/08/12 PHP
thinkphp命名空间用法实例详解
2015/12/30 PHP
Symfony2学习笔记之系统路由详解
2016/03/17 PHP
Zend Framework基于Command命令行建立ZF项目的方法
2017/02/18 PHP
jQuery 版本的文本输入框检查器Input Check
2009/07/09 Javascript
jQuery TextBox自动完成条
2009/07/22 Javascript
JS继承 笔记
2011/07/13 Javascript
一行代码实现纯数据json对象的深度克隆实现思路
2013/01/09 Javascript
js浮点数精确计算(加、减、乘、除)
2013/12/26 Javascript
JQuery中dataGrid设置行的高度示例代码
2014/01/03 Javascript
JavaScript将XML转成JSON的方法
2015/03/12 Javascript
手机开发必备技巧:javascript及CSS功能代码分享
2015/05/25 Javascript
关于JavaScript作用域你想知道的一切
2016/02/04 Javascript
JavaScript Date 知识浅析
2017/01/29 Javascript
bootstrap modal+gridview实现弹出框效果
2017/08/15 Javascript
解决layer.confirm快速点击会重复触发事件的问题
2019/09/23 Javascript
vue项目初始化到登录login页面的示例
2019/10/31 Javascript
JS Generator 函数的含义与用法实例总结
2020/04/08 Javascript
Vue结合路由配置递归实现菜单栏功能
2020/06/16 Javascript
vue 授权获取微信openId操作
2020/11/13 Javascript
[00:15]TI9观赛名额抽取
2019/07/10 DOTA
[48:24]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第一场 12.09
2020/12/12 DOTA
python中执行shell命令的几个方法小结
2014/09/18 Python
django-filter和普通查询的例子
2019/08/12 Python
解决Djang2.0.1中的reverse导入失败的问题
2019/08/16 Python
通过celery异步处理一个查询任务的完整代码
2019/11/19 Python
OpenCV python sklearn随机超参数搜索的实现
2020/01/17 Python
python math模块的基本使用教程
2021/01/16 Python
美国彩妆品牌:Coastal Scents
2017/04/01 全球购物
怎么处理XML的中文问题
2015/03/26 面试题
我爱我的祖国演讲稿
2014/05/04 职场文书
坎儿井导游词
2015/02/09 职场文书
五四青年节活动总结
2015/02/10 职场文书
2015年留守儿童工作总结
2015/05/22 职场文书
HTML+css盒子模型案例(圆,半圆等)“border-radius” 简单易上手
2021/05/10 HTML / CSS