摘要:年,由北京的團隊開發了涉足社交開源行業。終于,在年下半年,我們決定重寫這個程序,拋棄之前的每一行代碼。起初,我們選擇在中做生成函數,配合第三方包實現,功能實現了。的拓展不能直接以這種方式使用喲,因為我們做這個的想法是把配置移交到后臺配置。
什么是 ThinkSNS+
好吧,這不是廣告。。。在 09 年,由北京的團隊開發了 ThinkSNS 涉足社交開源行業。
09 年,由北京的團隊開發了 ThinkSNS 涉足社交開源行業。這么多年累計不少客戶。2014-2016,兩年都在維護和開發之前基于 TP 的 ThinkSNS , 慢慢的引入新開發概念。終于,在2016年下半年,我們決定重寫這個程序,拋棄之前的每一行代碼。框架上,開發人員一致性的選擇了 Laravel ,并取了一個看起來像手機廠商給手機命名的名字----ThinkSNS Plus 沒錯就是 Plus 也就是符號 + 因為我們更希望側重移動端,這就是 ThinkSNS+。(程序員的文案,怎么莫名廣告感。。。)
起初沒想過框架升級的問題,后來思考了一個問題,最后會不會像之前版本一樣?框架難以升級?所以我們決定每周一對 laravel/laravel 的 master 分支進行合并,為了表示對 Taylor Otwell 以及 Laravel 貢獻者的尊重,每一個 commit 在合并的時候都進行了保留。
開源協議由于 Laravel 本身是 MIT 協議,基于 Laravel 開發,我們也希望 ThinkSNS+ 能為開源社區貢獻,所以代碼上沒有采用私有協議,而是選擇了 Apache-2.0 協議進行開源。
前端工作流這塊是一個難以選擇的問題,我們希望能由內置 Laravel-Mix 的契合度,又希望構建能更適合我們的應用場景,最后,我們選擇 放棄 Laravel-Mix 自己做前端構建,衍生出一個新的問題,我們又希望能和 mix 輔助函數無縫配合,看了源代碼后,發現問題太簡單了,就是一個 mix-manifest.json 的事情而已,但是這個東西卻一波三折。
起初,我們選擇在 webpack.config.babel.js 中做生成函數,配合第三方包實現,功能實現了。但是如果是拓展包接入也要使用怎么辦?最后開發 webpack-laravel-mix-manifest 這個前端包,來生成這個文件。
拓展設計首選,拓展設計目前有兩個,分別是 plus-component 和 plus-plugin 其實都是由 Composer 中間插件實現。
composer 插件 zhiyicx/plus-install-plugin
plus-component
這個設計其實只是想拓展包可以快速的接入路由模板數據模型這些基礎開發,也是中間插件 1.0 版本中唯一實現的拓展方式,存在了長達半年之久,可以快速的寫路由、控制器、數據模型,目前我們團隊出的應用拓展都是以此方式開發實現。
并封裝了 php artisan component 命令安裝。
plus-plugin
這是一個很年輕的 type 在 composer 插件 1.1 版本中增加的,這個拓展方式實現原理很簡單,其實就是 Laravel 的 Service Provider ,熟悉 Laravel 開發都知道,這個服務門面被稱之為 "Laravel 拓展" 但是安裝并不方便,需要先 composer require vendor/name ,然后在 app.php 的 providers 字段中配置,然后運行命令生成配置文件等。
考慮到 ThinkSNS+ 面向的都是站長、創業者、企業集團等用戶,讓他們改代碼?簡直不如殺了他們。所以,萌生了一個想法,如何把這個步驟自動化?讓用戶只需要 composer require vendor/name 就完成呢?而且,對于例如廣播系統的使用,很需要一個這樣的東西來方便開發拓展。所以想辦法把這個步驟,在 composer require 步驟完成,由此開發了這個模式。
Laravel 的拓展不能直接以這種方式使用喲,因為我們做這個的想法是把配置移交到后臺配置。
接口,在初期沒有完全考慮 REST ful 所以,你能會看到 URL 命名很像 REST ful 規范,實際數據卻不是,后續逐步規范化。
這里提到了 API 接口,意味著一個事情,我們拋棄了傳統網頁,ThinkSNS+ 核心就是一個 用戶中心,然后功能全部由拓展實現,目前后臺、手機端 都是采用 SPA 調用接口的形式開發。
GitHub:https://github.com/zhiyicx/th...(點擊star,每日關注開發動態。)
開源不易,為了爭取開源,我們團隊做了很多努力。把基于 Laravel 的作品展示在大家面前,之后專欄會持續不斷的分享 ThinkSNS+ 開發過程中的技術細節。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/23049.html
摘要:在上一篇文章基于分支,從到,再到,簡單的介紹了這里分享在開發過程中,前端選擇的心理活動。而作為核心開發之一,也負責前端這塊的開發。 在上一篇文章《 ThinkSNS+基于Laravel master分支,從1到 0,再到0.1》,簡單的介紹了 ThinkSNS+ ,這里分享在開發過程中,前端選擇的心理活動。 Laravel Mix的放棄 在 Laravel 中,前端工作流默認是由 la...
摘要:言歸正傳,之所以寫繼篇,其實是來檢討的,上一次發表了如何計算字符顯示長度后,有網友幾經測試后告知有問題。簡言之單字節字符占,多字節字符占字節。 什么是ThinkSNS+ ThinkSNS(簡稱TS)始于2008年,一款全平臺綜合性社交系統,為國內外大中小企業和創業者提供社會化軟件研發及技術解決方案,目前最新版本為ThinkSNS+。 后端框架使用laravel,每周和 laravel ...
摘要:需求場景發送驗證碼或者消息通知,可發送到手機或郵箱中。完成首先,在中的規范就是使用的消息通知,這里基于場景為驗證碼。所以我們在驗證碼模型中添加是完全符合通知的正確使用的。 順便發個小通知:7月15日ThinkSNS+開源版發布,同時非開源的APP也走出內測階段,體驗二維碼也全面發布體驗。 什么是ThinkSNS ? ThinkSNS(簡稱TS),一款全平臺綜合性社交系統,為國內外大中小...
閱讀 1637·2021-09-26 09:55
閱讀 1371·2021-09-23 11:22
閱讀 2725·2021-09-06 15:02
閱讀 2640·2021-09-01 11:43
閱讀 3951·2021-08-27 13:10
閱讀 3676·2021-08-12 13:24
閱讀 2069·2019-08-30 12:56
閱讀 2991·2019-08-30 11:22