Laravel 5.5 釋出,ThinkSNS+ 升級以及狀況分享。

medz發表於2017-08-31

哈哈,自從 ThinkSNS+ 開始使用 Laravel 重新開發後,一直堅持在 Laravel China 寫 Laravel 在 ThinkSNS+ 應用中的一些新的和小技巧分享。
好了,廢話不多說,開始我們的升級之旅!

升級場景

ThinkSNS+ 一直依賴,都是保留 Laravel 的 commit 記錄的前提下,進行開發,為了追隨 Laravel 的升級,我們在本地的倉庫中新建了一個分支,如果 laravel 更新頻繁,則每週一進行 merge 操作。然後再傳送到 ThinkSNS+ 的 GitHub 倉庫上(倉庫地址 https://github.com/slimkit/thinksns-plus )。所以此次升級同樣採用 merge 的方式升級。

前端構建

Laravel 一直都有提供腳手架,5.5 則提供了 Vue 和 React 兩種切換,對於前端老說,其實腳手架很優秀,但是不是適合所有場景,就和之前文字分享如何構建相容 Laravel mix 輔助函式的前端構建一樣,本次升級直接拋棄了腳手架。

包自動發現

說到「包自動發現」這個功能,其實 ThinkSNS+ 開發出來的時間比 Laravel 5.5 開發出來的時間還要早,最開始的時候,我們是採用 Composer 外掛的方式來管理包清單,然後 ThinkSNS+ 使用這份清單進行服務提供者的載入。而後因為擴充包中有可能還會使用 Laravel 的擴充包,所以拋棄了 composer 外掛的方式,我們從核心入手,選擇在 composer.json ,然後這種方式一直在內部開發使用持續了大概三個月之久,後來關注 Laravel 5.5 開發動態,發現 laravel 5.5 選擇從 vendor/composer/installed.lock 入手去匹配清單,比我們之前開發的更好,所以直接仿照 寫了一份從 vendor/composer/installed.lock 匹配清單的程式碼。總結,這次升級對於半年前就開始使用這個功能的我們來說,影響太小了,以至於這次升級中,我們捨棄了之前維護的包包清單管理程式碼。而 之前的所有擴充包均可以正常使用。

JSON 異常訊息

這塊升級後確實影響蠻大的,因為之前所有 API 介面都是按照 5.4 的一個結構進行返回,升級後,5.5 的結構出現。被移動端頭子給懟慘了,這塊不說了,下午還要寫文件,移動端需要相容兩個格式。

其他影響

因為 ThinkSNS+ 在開發的時候我們就遵循一個原則,所有 Laravel 的東西不動,需要的東西進行擴充,所以此次升級出了上述說的 json 訊息以外,幾乎沒有任何影響。

瞭解更多 ThinkSNS+

file
上面的圖是 ThinkSNS+ 安裝後的預設首頁。
file
file
file
上圖是網站的後臺部分頁面截圖,網站後臺採用的是 ES6 + Vue 的 SPA,後臺管理介面沒有采用 token 認證,而是採用傳統的 Session。這樣有助於安全。

當然,我們也在為 ThinkSNS+ 開發一個友好的文件網站(之前一直在 github 中寫 markdown )不涉及後端,文件使用 markdown 維護,前端使用 ES6 + React + Material-UI 進行開發。看圖:
file
當然,正在開發中哈,暫未公佈。


如果喜歡的童鞋可以點選 https://github.com/slimkit/thinksns-plus 幫我們點一個 Star 。感謝!!!

Seven 的程式碼太渣,歡迎關注我的新擴充包 medz/cors 解決 PHP 專案程式設定跨域需求。

相關文章