ThinkPHP6新增‘’多应用‘’与ThinkPHP5有啥区别呢
2023-03-29 23:03:03
151
{{single.collect_count}}

在ThinkPHP6中新增了一个叫做“多应用”的名词,这个在ThinkPHP5中并没有,那么这个是干啥的呢?下面我们来唠叨唠叨……

首先看下ThinkPHP6官方手册关于多应用的目录结构:

├─app 应用目录│├─index主应用││├─controller控制器目录││├─model 模型目录││├─view视图目录││├─config配置目录(优先)││└─ ...更多类库目录│├─admin后台应用││├─controller控制器目录││├─model 模型目录││├─view视图目录││├─config配置目录(优先)││└─ ...更多类库目录│├─publicWEB目录(对外访问目录)│├─admin.php后台入口文件│├─index.php入口文件│├─router.php 快速测试文件│└─.htaccess用于apache的重写│├─config应用配置目录│├─indexindex应用配置│└─adminadmin应用配置│├─view视图目录│├─indexindex应用视图目录│└─adminadmin应用视图目录│├─route 路由定义目录│├─indexindex应用路由定义目录│└─adminadmin应用路由定义目录│├─runtime 运行时目录│├─indexindex应用运行时目录│└─adminadmin应用运行时目录

哎呀,这样一看发现ThinkPHP6的多应用也不过如此,一个前台index应用,一个后台admin应用,这就叫多应用了。想当年,我们用ThinkPHP5那也开发过前台应用index、后台应用admin,这又啥区别呢?

[【ThinkPHP6实战开发高大上企业站】](https://edu.csdn.net/course/detail/28486)

区别1:就是必须通过composer下载后才能使用。

ThinkPHP6框架默认下载后是单应用,要想使用多应用就要下载:

composer require topthink/think-multi-app

区别2:路由定义必须在当前的应用下。

我们知道ThinkPHP5的时候,我们可以在根目录下的路由文件定义,但是ThinkPHP6后必须在应用目录下定义路由。

区别3:ThinkPHP6支持应用入口。

我们在ThinkPHP6中可以对某个应用单独设置入口文件,比如admin应用我可以设置admin.php入口文件来访问。

区别4:域名绑定应用。

举个例子ThinkPHP5的时候我们定义www.a.com/index/index/company.html的路由后,可以实现这样的效果www.a.com/company.html

但是ThinkPHP6你会发现怎么设置路由,index应用都去不掉,始终是www.a.com/index/company.html,这个可咋整?

那么解决方案就可以用到了域名绑定应用了,我们在config/app.php 配置文件中定义域名和应用的绑定,如下方式:

'domain_bind' => ['www.a.com' => 'index', // 域名绑定到www应用'admin.a.com' => 'admin', // admin绑定到后台应用],

这样我们就可以用www.a.com/company.html来访问了。

最后:

总的来说,ThinkPHP6的多应用相对比ThinkPHP5还是有比较大的进步,虽然在第一次使用麻烦一点需要composer下载,但是这不影响我们对ThinkPHP6多应用的青睐。

回帖
全部回帖({{commentCount}})
{{item.user.nickname}} {{item.user.group_title}} {{item.friend_time}}
{{item.content}}
{{item.comment_content_show ? '取消' : '回复'}} 删除
回帖
{{reply.user.nickname}} {{reply.user.group_title}} {{reply.friend_time}}
{{reply.content}}
{{reply.comment_content_show ? '取消' : '回复'}} 删除
回帖
收起
没有更多啦~
{{commentLoading ? '加载中...' : '查看更多评论'}}