目录
-
多应用项目创建步骤
- 使用composer 安装thinkphp8单应用
composer create-project topthink/think myproject
- 在myproject根目录下加载多应用库
composer require topthink/think-multi-app
- 在myproject根目录分别创建admin应用和api应用
php think build admin
- 删除app目录下的controller文件夹
- 最终目录结构如下:
├─app 应用目录
│ ├─api 主应用 //通过php think build api生成
│ │ ├─controller 控制器目录
│ │ ├─model 模型目录
│ │ ├─view 视图目录
│ │ ├─config 配置目录
│ │ ├─route 路由目录
│ │ └─ ... 更多类库目录
│ │
│ ├─admin 后台应用 //通过php think build admin 生成
│ │ ├─controller 控制器目录
│ │ ├─model 模型目录
│ │ ├─view 视图目录
│ │ ├─config 配置目录
│ │ ├─route 路由目录
│ │ └─ ... 更多类库目录
│
├─public WEB目录(对外访问目录)
│ ├─admin.php 后台入口文件
│ ├─index.php 入口文件
│ ├─router.php 快速测试文件
│ └─.htaccess 用于apache的重写
│
├─config 全局应用配置目录
├─runtime 运行时目录
│ ├─index index应用运行时目录
│ └─admin admin应用运行时目录 - 在myproject根目录下运行
php think run -p 80
- 在浏览器输入
http://localhost/index.php/admin/index/index
http://localhost/index.php/api/index/index
输出相应内容就是成功了。
-
URL访问与设置
默认是自动多应用模式,也就是可以通过index.php入口文件访问多个应用。
-
URL格式
格式:http://serverName/index.php/应用名/控制器/操作/参数/值[...] //PATHINFO模式
例子:http://localhost/index.php/admin/index/hello
-
隐藏URL中的应用名 domain_bind
通过域名绑定应用,在myproject-->config-->app.php设置:
//通过二级域名绑定应用
'domain_bind' => [
'domain' => 'admin', // domain子域名绑定到admin应用
],
重新访问:
http://domain.域名.com/index.php/index/hello
//通过完整域名绑定
'domain_bind' => [
'myapi.域名.com' => 'api', // 完整域名绑定到api应用
],
重新访问:
http://myapi.域名.com/index.php/index/hello
从上面两个访问URL可以看出在域名后面的应用名已经不存在了,对应的是不同的二级域名指向不同的应用。
-
设置应用别名 app_map
实际上就是通过映射给应用起另外一个名字
在myproject-->config-->app.php设置:
'app_map' => [
'myadmin' => 'admin', // 把admin应用映射为myadmin
'myapi' =>'api'
],
原访问路径:http://localhost/index.php/admin/index/index
现访问路径:http://localhost/index.php/myadmin/index/index
-
设置访问默认应用 default_app
在无配置默认应用的情况下, 直接访问入口文件会报页面错误。
http://localhost/index.php
在myproject-->config-->app.php设置:
// 设置默认应用名称
'default_app' => 'api',
重新访问,默认跳转到api应用
-
增加入口文件改变访问方式
在myproject-->public文件夹下复制index.php 分别生成admin.php和api.php两个文件,这时自动多应用模式就失效了,要访问应用必须从不同的入口文件进入,原来的index.php入口无法再访问。
//访问admin应用
http://localhost/admin.php/index/index
//访问api应用
http://localhost/api.php/index/index
//从index.php入口会报页面错误
http://localhost/index.php/admin/index/index
上面URL路径不再出现应用名了,但是入口文件变成了"应用名.php",通过不同的入口文件进入到不同的应用中。
上述所有的内容只是简单介绍了怎样创建一个多应用项目,并列出了一些主要的配置,这些配置能够改变布署访问方式,当然还有更多的配置这里就不再一一列出了,tp官方有很详细的介绍。