在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:就是必須通過ThinkPHP6.0快速開發手冊(案例版)下載后才能使用。
立即學習“PHP免費學習筆記(深入)”;
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多應用的青睞。
【推薦教程】