在ThinkPHP6
中新增了一個叫做「多重應用」的名詞,這個在ThinkPHP5
中並沒有,那麼這個是乾啥的呢?來聽php中文網投稿作者王雪芹嘮叨嘮叨嘮叨……
首先看下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.0快速開發手冊(案例版))
哎呀,這樣一看發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/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多應用的青睞。
【推薦教學】
#######以上是ThinkPHP6新增''多應用''與ThinkPHP5有啥差別呢的詳細內容。更多資訊請關注PHP中文網其他相關文章!