本文作者:陈进坚
个人博客: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方式实现类自动加载