tp6從新安裝一個空白專案理解多應用模式
準備
安裝tp6和部署這裡不表,我們一步步來搞清楚tp6多引用模式
本地域名 :www.duo.com
1.安裝多應用
composer require topthink/think-multi-app
建立預設應用index
重新整理頁面,發現報錯了
這個時候怎麼檢視具體報錯資訊?複製一份.example.env
命名為.env
再次重新整理,可以看到詳細的報錯資訊
跟著提示我們建立控制器
這是命令列建立,單應用和多應用不太一樣
文件:https://www.kancloud.cn/manual/thinkphp6_0/1037644
php think make:controller Index@Index --plain
然後寫一個index方法
重新整理頁面,可以看到index這個預設應用可以訪問到了
接著我們一口氣直接建立一個網站後臺應用
php think build admin
這個時候訪問,域名 新增一個admin 即可直接訪問
接著我們繼續說,一般開發肯定是要使用強制路由,所去config/route.php
下如下兩專案改成true
強制路由應該不難理解,完全匹配要是不知道含義的可以看文件解釋
https://www.kancloud.cn/manual/thinkphp6_0/1037495
接著我們重新整理頁面,提示路由未定義
去admin應用下定義路由,直接把最外層的route目錄複製一份到admin應用
重新整理頁面,又正常顯示了
按照同樣的方法,也複製一份route目錄到Index應用,即可正常訪問
拓展:平常在開發中可能不止是傳統pc站的應用,可以能還有api和移動端的。
所以我們在建立應用的時候多半會出現以下幾個模組
//分別是前臺pc主站 php think build index //後期可能會改版成前後端分離的 php think build indexapi //傳統後臺管理 php think build admin //後臺的api介面 php think build adminapi //傳統的移動端應用(其實這個也是屬於前臺,如果這個移動端專案 是前後端分離的方式來做的話,那麼直接用上面的indexapi介面就行,可以弄一箇中間件,檢測到是手機訪問重定向到 m.xx.com 類似京東www.jd.com訪問 如果是檢測到手機訪問 會自動跳轉到 m.jd.com ) php think build mobile
接著我們繼續講,如何隱藏後臺管理的入口地址?
比如 http://www.duo.com/admin 我不想讓普通使用者輸入 admin 就直接進入後臺的登入頁面
我們可以這樣做,通過應用對映 來隱藏入口地址,此時通過 /admin就不能訪問了 ,上線後可以隨意更改後臺入口地址
接下來清理以下目錄,我們把一些多餘的目錄刪除
現在看起來要清楚很多了
接著我們繼續來講一個知識點,那就是api模組,現在幾乎都是api前後端分離模式的
我們建立一個api應用
關於第一個api的版本控制問題(重點),有些時候有這樣的場景,就是api第一個版本不能立馬下線或者需要保留的時候,我們可以這樣來進行升級
建立類
php think make:controller api@v1/User --plain
php think make:controller api@v2/User --plain
路由重新定義
<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <[email protected]>
// +----------------------------------------------------------------------
use think\facade\Route;
Route::group('v1', function () {
Route::get('user', 'v1.User/index');
});
Route::group('v2', function () {
Route::get('user', 'v2.User/index');
});
前面那個v1.
v2.
格式不理解的看文件
https://www.kancloud.cn/manual/thinkphp6_0/1037497
訪問,這樣就完成了對api版本的控制。
接著我們來講一下,api開發的第二個知識點,二級域名路由訪問api
意思就是由原來的
http://www.duo.com/api/v2/user
改成如下格式來進行訪問
http://api.duo.com/v2/user
這種常見的操作,我們該怎麼實現呢?
首先,我們要把二級域名 api.duo.com
解析到你的伺服器的ip地址上,我這裡本地測試就用phpstudy來模擬了
記得新增偽靜態
解析好後,我們開啟專案config/app.php
如下配置即可
訪問測試,注意:這樣配置後原來的路由地址訪問依然有效。