【ThinkPHP6系列学习-2】多应用模式配置
这里写一写TP6下配置多应用。因为TP6和TP5有所差异,TP6默认是单应用模式(单模块),而我们实际项目中往往是多应用的(多个模块),所以在利用TP6是就需要进行配置,开启多应用模式。
一、安装多应用模式
1、安装多应用模型
进入到项目根目录,打开CMD,使用composer安装多应用模型
composer require topthink/think-multi-app
2、安装think-view扩展
在根目录下,使用composer安装think-view扩展,官方手册是这么说明的
视图功能由 \think\View 类配合视图驱动(也即模板引擎驱动)类一起完成,新版仅内置了PHP原生模板引擎(主要用于内置的异常页面输出),如果需要使用其它的模板引擎需要单独安装相应的模板引擎扩展。
如果你需要使用 think-template 模板引擎,只需要安装 think-view 模板引擎驱动。
composer require topthink/think-view
如果不安装扩展,使用在控制器使用 “return view()” 时,会报错。
二、删除app目录下的文件
删除app目录下自带的所有文件,因为多应用需要重新创建一套,所以原来的用不上,可以删掉
三、创建新应用
在app下创建新应用(新模块),比如在app下创建admin模块和index模块,可以代码创建也可以手动创建
php think make:controller admin@index php think make:controller index@index
创建成功后app下就会有admin和index两个文件夹,同时对应文件夹下会自动创建index.php控制器,,控制器里的代码可以直接使用。
四、配置默认应用
修改config/app.php,修改以下配置,没有的话就直接新添加
// 设置默认应用名称 'default_app' => 'home', // 开启自动多模式 'auto_multi_app' => true, // 开启应用快速访问 'app_express' => false,
五、修改伪静态
1、apache修改如下
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php?/$1 [QSA,PT,L] </IfModule>
2、nginx修改如下
location / { try_files $uri $uri/ /index.php?$query_string; index index.html index.htm index.php; autoindex on; if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; break; } }
六、配置环境变量
在项目文件夹下有一个“.example.env”环境变量示例文件,这个文件是示例文件,不是正式使用的文件,所以如果需要修改环境变量的话,可以新创建一个文件,命名为".evn"文件,可以把示例文件里的一些配置复制到新的evn文件里
// 开启调试模式 APP_DEBUG = true
七、访问项目
这时候就算大功告成了,可以直接输入域名访问项目了。
八、回顾文件结构
此时的文件结构如下,在app文件夹新创建了两个文件夹,index和admin,就是新创建的两个模块,每个模块下和TP5一样,都有controller文件、model文件、view文件,同时在每个模块下还可以有当前作用域下的相关文件(函数文件、配置文件等)。
www WEB部署目录(或者子目录) ├─app 应用目录 │ ├─index 应用目录 │ │ ├─controller 控制器目录 │ │ │ ├─Index.php 控制器文件 │ │ ├─model 模型目录 │ │ ├─view 视图目录 │ │ ├─common.php 函数文件 │ │ ├─config 配置目录 │ │ ├─route 路由目录 │ │ └─ ... 更多类库目录 │ ├─admin 应用目录 │ │ ├─controller 控制器目录 │ │ ├─model 模型目录 │ │ ├─view 视图目录 │ ├─common.php 公共函数文件 │ └─event.php 事件定义文件 ├─config 全局配置目录 │ ├─app.php 应用配置 │ ├─cache.php 缓存配置 │ ├─console.php 控制台配置 │ ├─cookie.php Cookie配置 │ ├─database.php 数据库配置 │ ├─filesystem.php 文件磁盘配置 │ ├─lang.php 多语言配置 │ ├─log.php 日志配置 │ ├─middleware.php 中间件配置 │ ├─route.php URL和路由配置 │ ├─session.php Session配置 │ ├─trace.php Trace配置 │ └─view.php 视图配置 ├─public WEB目录(对外访问目录) │ ├─index.php 入口文件 │ ├─router.php 快速测试文件 │ └─.htaccess 用于apache的重写 │ ├─extend 扩展类库目录 ├─runtime 应用的运行时目录(可写,可定制) ├─vendor Composer类库目录 ├─.example.env 环境变量示例文件 ├─composer.json composer 定义文件 ├─LICENSE.txt 授权说明文件 ├─README.md README 文件 ├─think 命令行入口文件 ├─.env 环境变量
多应用模式文件结构详细说明参看官方文档https://www.kancloud.cn/manual/thinkphp6_0/1037483