Thinkphp6 多应用方式支持一个应用多个入口!
2022-11-24 11:10:29
156
{{single.collect_count}}

此方式参考 to5.1 开发的 海豚php  一个应用模块包含 admin  home  api 等多种方式,多一个方式就多一个入口文件。

思路是把入口文件的名称与控制器层(controller_layer)目录对应,然后将pathinfo的第一个路径作为应用的名称。相当于是把两个错位后达到的效果!

第一步:修改 MultiApp.php 189行setApp方法(必须先装多应用组件)
//将多应用名称设置为控制器层!$this->app->config->set([ 'controller_layer' => $this->getScriptName()=='index'?'controller':''], 'route');//拆分并patinfo,将应用名称去除并重组$pathinfo_array = explode('/', \request()->pathinfo());$appName = $pathinfo_array[0];unset($pathinfo_array[0]);\request()->setPathinfo(join('/',$pathinfo_array)) ;//pathinfo中拆出应用名称并替换原来的应用名称$this->appName = $appName;

 第二步:在public 目录创建入口文件,并设置入口文件名称;

namespace think;require __DIR__ . '/../vendor/autoload.php';// 执行HTTP应用并响应$http = (new App())->http;$response = $http->name('api')->run();$response->send();$http->end($response);

 

访问 解释:

访问  http://serverName/index.php/index/index/index 指向的是 index应用下面controller的index控制器index方法访问  http://serverName/admin.php/index/index/index 指向的是 index应用下面admin的index控制器index方法访问  http://serverName/api.php/index/index/index 指向的是 index应用下面api的index控制器index方法

 

回帖
全部回帖({{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 ? '加载中...' : '查看更多评论'}}