Thinkphp6多应用路由管理

2023-06-19 23:07:47 浏览数 (3)

ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简代码的同时,更注重易用性。遵循Apache2开源许可协议发布,意味着你可以免费使用ThinkPHP,甚至允许把你基于ThinkPHP开发的应用开源或商业产品发布/销售。

今天就来给大家分享一下ThinkPHP6中,如何基于多应用定义路由配置。该篇文章需要注意的是,官方文档说的多应用是针对多个域名,而本篇文章是基于同一个域名来实现多应用。

目录说明

第一步肯定是需要安装ThinkPHP6官方框架,这里就直接省略这一步。接下来就是安装多应用的组件包。

代码语言:shell复制
composer require topthink/think-multi-app

接下来,创建这样的目录结构。

代码语言:shell复制
├── app
│   ├── admin
│   │   ├── controller
│   │   │   ├── admin
│   │   │   └── api
│   │   ├── route
  • admin为应用的目录。这里我们创建一个admin的应用。
  • admin.controller 为应用的controller层,文章演示用到了分层controller。这里分为api和admin。对应的控制器就在admin和api下进行创建。
  • route 为应用的路由文件,在该目录下存在一个app.php的文件,为具体的路由文件,所有的应用路由都是定义在这里。

路由定义

第二步在route目录下的app.php文件定义路由。假设我们在admin目录下定义了一个MenuController的控制器,里面有一个create方法。此时的路由就应该这么定义。

代码语言:php复制
Route::group("menu", function () {
    Route::get("create", "admin.menu/create");
});

上面的admin.menu是ThinkPHP中的一个分层控制器定义规则。

路由访问

上面定义好了路由,接下来就可以进行访问。按照上面定义的规则,我们可能会直接去这样访问https://域名/menu/create,最终的结果是404。为什么会这样呢?这是因为你绑定多应用之后,在同一个域名下,没有做域名绑定,需要在域名后面添加一个应用名称

  • 因此正确的访问方式应该是这样的。https://域名/admin/menu/create
  • 除了上面的一种访问方式,还有一种就是不走定义好的路由。https://域名/admin/admin.menu/create

1 人点赞