ThinkPHP5和ThinkPHP6的区别
本文作者:陈进坚
个人博客:https://jian1098.github.io
CSDN博客:https://blog.csdn.net/c_jian
简书:https://www.jianshu.com/u/8ba9ac5706b6
联系方式:jian1098@qq.com
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方式实现类自动加载
ThinkPHP5和ThinkPHP6的区别相关推荐
- THINKPHP图片处理之图片合成,分享海报合成
https://book.employleague.cn/ package topthink/think-image composer require topthink/think-image Thi ...
- thinkphp漏洞总结
目录 前言 一.远程代码执行漏洞 1.1 影响范围 1.2 漏洞详情 二.5.x远程命令注入 三.5.1.x SQL注入 前言 thinkphp是一个国内轻量级的开发框架,采用php+apache,在 ...
- 静态方法与非静态方法的区别_程序员必看之ThinkPHP5中model与Db的区别
在ThinkPHP5的使用过程中,很多使用者刚接触到数据库操作时,不能很好调用相关的方法进行数据库的交互.下面就分享一下ThinkPHP5中Db与模型的区别 关于db与model的选择 使用DB方式是 ...
- thinkphp5中的系统文件上传和$_FILES用法区别
thinkphp5中的系统文件上传和$_FILES用法区别 $aa=request()->file('file');$bb=$aa->getInfo(); 后面的file是文件的名字 $b ...
- thinkphp5.1、thinkphp6
下载原装:https://packagist.org/packages/topthink/think composer create-project topthink/think tp 6.0.*-d ...
- thinkphp6学习教程与源码 tp6开源CMS系统源码研究
thinkphp6最新正式版框架上市已经有一段时间了,从官方的介绍来看,tp6的框架和tp5有很大的区别,完全重新改写了底层架构代码和逻辑,所以不支持thinkphp5的无缝升级,也就是说如果你之前的 ...
- Thinkphp5.0行为钩子Hook的用法
什么是行为钩子? 行为 可以把行为想象成在应用执行过程中的一个动作.例如在框架的执行流程中,路由检测.静态缓存.用户权限检测是一个行为,大到业务逻辑,小到浏览器检测.多语言检测等都可以当做是一个行为. ...
- Thinkphp5 集成 Swoole
Swoole简介 Swoole是一个面向生产环境的 PHP 异步网络通信引擎.使 PHP 开发人员可以编写高性能的异步并发 TCP.UDP.Unix Socket.HTTP,WebSocket 服务. ...
- thinkphp5+远程代码执行_ThinkPHP5 5.0.23 远程代码执行漏洞
漏洞描述 ThinkPHP是一款运用极广的PHP开发框架.其5.0.23以前的版本中,获取method的方法中没有正确处理方法名,导致攻击者可以调用Request类任意方法并构造利用链,从而导致远程 ...
- thinkphp5内置标签
thinkphp5内置标签 知道内置标签怎么用,查手册的时候好查 却功能的时候在里面找着来用 内置标签一览 1 内置标签 2 3 变量输出使用普通标签就足够了,但是要完成其他的控制.循环和判断功能,就 ...
最新文章
- 简单的表单提交 by MVC 2
- Android线程池封装库
- spring boot框架学习学前掌握之重要注解(2)-通过java的配置方式进行配置spring
- [转载]--- 开箱即用的springboot分库分表sharding-JDBC
- 网页内置html5游戏,爽爆HTML5网页游戏!教你怎么精选浏览器
- xor和gates的专杀脚本
- 数据结构与算法——栈、队列、堆汇总整理
- 梯度消失与梯度爆炸----解决方案(一)
- 刺客信条3一直显示育碧服务器,刺客信条3免Uplay启动游戏的方法
- Win10+Ubuntu双系统修复Ubuntu系统引导
- 资深架构师推荐 21 本技术好书
- transition使用
- 第六章:纯策略纳什均衡
- 医院排队叫号系统源码
- linux下编译,Linux 下编译指南
- 新买的显示器怎么测试软件,新买的电视如何检测屏幕?记住这个方法
- 电子仪表系统显示管理计算机,综合电子仪表系统.ppt
- Maven中央仓库地址整理
- 开启投简历找工作新征程
- 一起读JavaScript红宝书 —— 01JavaScript概述