首先看下ThinkPHP6官方手冊關於多應用的目錄結構: ├─app 應用目錄 │ ├─index 主應用 │ │ ├─controller 控制器目錄 │ │ ├─model 模型目錄 │ │ ├─view 視圖目錄 │ │ ├─config 配置目錄(優先) │ │ └─ ... 更多類庫目錄 ...
首先看下ThinkPHP6官方手冊關於多應用的目錄結構:
├─app 應用目錄
│ ├─index 主應用
│ │ ├─controller 控制器目錄
│ │ ├─model 模型目錄
│ │ ├─view 視圖目錄
│ │ ├─config 配置目錄(優先)
│ │ └─ ... 更多類庫目錄
│ ├─admin 後臺應用
│ │ ├─controller 控制器目錄
│ │ ├─model 模型目錄
│ │ ├─view 視圖目錄
│ │ ├─config 配置目錄(優先)
│ │ └─ ... 更多類庫目錄
│
├─public WEB目錄(對外訪問目錄)
│ ├─admin.php 後臺入口文件
│ ├─index.php 入口文件
│ ├─router.php 快速測試文件
│ └─.htaccess 用於apache的重寫
│
├─config 應用配置目錄
│ ├─index index應用配置
│ └─admin admin應用配置
│
├─view 視圖目錄
│ ├─index index應用視圖目錄
│ └─admin admin應用視圖目錄
│
├─route 路由定義目錄
│ ├─index index應用路由定義目錄
│ └─admin admin應用路由定義目錄
│
├─runtime 運行時目錄
│ ├─index index應用運行時目錄
│ └─admin admin應用運行時目錄複製代碼
這樣一看發ThinkPHP6的多應用也不過如此,一個前臺index應用,一個後臺admin應用,這就叫多應用了。想當年,我們用ThinkPHP5那也開發過前臺應用index、後臺應用admin,這又啥區別呢?
區別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…的路由後,可以實現這樣的效果www.a.com/company.htm…
但是ThinkPHP6你會發現怎麼設置路由,index應用都去不掉,始終是www.a.com/index/compa…,這個可咋整?
那麼解決方案就可以用到了功能變數名稱綁定應用了,我們在config/app.php 配置文件中定義功能變數名稱和應用的綁定,如下方式:
'domain_bind' => [
'www.a.com' => 'index', // 功能變數名稱綁定到www應用
'admin.a.com' => 'admin', // admin綁定到後臺應用
], 複製代碼
這樣我們就可以用www.a.com/company.htm…來訪問了。
最後:
總的來說,ThinkPHP6的多應用相對比ThinkPHP5還是有比較大的進步,雖然在第一次使用麻煩一點需要composer下載,但是這不影響我們對ThinkPHP6多應用的青睞。
更多學習內容請訪問:
騰訊T3-T4標準精品PHP架構師教程目錄大全,只要你看完保證薪資上升一個臺階(持續更新)