## 前言
已經很久沒有更新,雖然該系列才有一個用戶付費購買查看,但是還是想說聲對不起。花了錢只為了這幾篇文章,而且前面幾篇還都是免費的。在時間充裕的情況下,這個系列會持續更新。至少可以從這上面汲取到一些認識。關于新的后臺開發篇章,是在之前基于版本 5.1 開發的后臺 [catchAdmin]([https://gitee.com/lovephp/thinkphp51\_backstage](https://gitee.com/lovephp/thinkphp51_backstage)) 上,使用版本 6.0 重新開發,并且向 `Composer` 式開發靠攏,更加插拔式。算是一種探索。
## 關于新版本的看法
新版本較于 5.1 在核心上改變很大,在去年使用 5.1 版本的構建了一個淺顯的后臺管理我,沒有深度去使用 5.1,所以沒法深度去講這兩個版本的差異性。但是少看出官方很用心,將很多核心的功能抽離成組件,想必這花費了很多時間和精力。我能做這種插拔式開發,也得益這樣的架構,我可以很好的剝離每個模塊。當然目前在開發中涉及的業務并不復雜,依賴很少。但是利用 ` composer` 模式開發的話,依賴也是可以解決的。
## 談談正在嘗試的后臺開發
后臺模版是基于 `Ant Design Vue` 開發。所以涉及到的后臺業務開發都不是在 `app` 目錄下開發的,因為我開源使用 `catchAdmin`,所以全部在 `catch` 目錄下,一些擴展類會放在 `extend` 目錄下。該項目不會破壞官方項目結構,減少使用者的心智負擔。我看到很多第三方的項目結構,破壞了原有項目結構,增加了復雜度。我量將后臺業務內聚在 `catch` 目錄下,特別之處也會提醒,在二次開發和改造的時候能迅速定位。
## 約定大于配置
這是從 `Ruby` 學來的。這真的很重要。如果一個項目沒有約定好的東西,后期真的會很混亂,管理起來特么麻煩。社區 `psr` 規范就是很好的約定表現。如果開發這個后臺開發有幾個約定。當你開發一個新的模塊時,必須有以下幾個文件目錄
```
- route.php // 這是路由文件
- module.json // 這是模塊描述文件
```
主要試看看 `module.json` 文件, 以首頁模塊為例
```
{
"name": "首頁管理", // 描述 可能用戶菜單
"alias": "index", // 別名 用于模版加載的 用戶自己的設置 千萬不要其他模塊同名
"description": "", // 模塊描述
"keywords": [],
"order": 0,
"services": [], // 模塊的 service,非必填
"aliases": {},
"files": [], // 預留
"requires": [], // 處理依賴,預留,可能以后需要開發在線更新的話使用
"enable": true //是否開啟模塊
```
目前必須約定就是這兩個文件,如果以后有其他約定會繼續添加。