成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

ThinkSNS+ 基于 Laravel master 分支,從 1 到 0,再到 0.1【社交系統(tǒng)

testbird / 3424人閱讀

摘要:年,由北京的團(tuán)隊(duì)開(kāi)發(fā)了涉足社交開(kāi)源行業(yè)。終于,在年下半年,我們決定重寫(xiě)這個(gè)程序,拋棄之前的每一行代碼。起初,我們選擇在中做生成函數(shù),配合第三方包實(shí)現(xiàn),功能實(shí)現(xiàn)了。的拓展不能直接以這種方式使用喲,因?yàn)槲覀冏鲞@個(gè)的想法是把配置移交到后臺(tái)配置。

什么是 ThinkSNS+

好吧,這不是廣告。。。在 09 年,由北京的團(tuán)隊(duì)開(kāi)發(fā)了 ThinkSNS 涉足社交開(kāi)源行業(yè)。
09 年,由北京的團(tuán)隊(duì)開(kāi)發(fā)了 ThinkSNS 涉足社交開(kāi)源行業(yè)。這么多年累計(jì)不少客戶。2014-2016,兩年都在維護(hù)和開(kāi)發(fā)之前基于 TP 的 ThinkSNS , 慢慢的引入新開(kāi)發(fā)概念。終于,在2016年下半年,我們決定重寫(xiě)這個(gè)程序,拋棄之前的每一行代碼??蚣苌希_(kāi)發(fā)人員一致性的選擇了 Laravel ,并取了一個(gè)看起來(lái)像手機(jī)廠商給手機(jī)命名的名字----ThinkSNS Plus 沒(méi)錯(cuò)就是 Plus 也就是符號(hào) + 因?yàn)槲覀兏M麄?cè)重移動(dòng)端,這就是 ThinkSNS+。(程序員的文案,怎么莫名廣告感。。。)

如何保持和 Laravel 的升級(jí)

起初沒(méi)想過(guò)框架升級(jí)的問(wèn)題,后來(lái)思考了一個(gè)問(wèn)題,最后會(huì)不會(huì)像之前版本一樣?框架難以升級(jí)?所以我們決定每周一對(duì) laravel/laravel 的 master 分支進(jìn)行合并,為了表示對(duì) Taylor Otwell 以及 Laravel 貢獻(xiàn)者的尊重,每一個(gè) commit 在合并的時(shí)候都進(jìn)行了保留。

開(kāi)源協(xié)議

由于 Laravel 本身是 MIT 協(xié)議,基于 Laravel 開(kāi)發(fā),我們也希望 ThinkSNS+ 能為開(kāi)源社區(qū)貢獻(xiàn),所以代碼上沒(méi)有采用私有協(xié)議,而是選擇了 Apache-2.0 協(xié)議進(jìn)行開(kāi)源。

前端工作流

這塊是一個(gè)難以選擇的問(wèn)題,我們希望能由內(nèi)置 Laravel-Mix 的契合度,又希望構(gòu)建能更適合我們的應(yīng)用場(chǎng)景,最后,我們選擇 放棄 Laravel-Mix 自己做前端構(gòu)建,衍生出一個(gè)新的問(wèn)題,我們又希望能和 mix 輔助函數(shù)無(wú)縫配合,看了源代碼后,發(fā)現(xiàn)問(wèn)題太簡(jiǎn)單了,就是一個(gè) mix-manifest.json 的事情而已,但是這個(gè)東西卻一波三折。

起初,我們選擇在 webpack.config.babel.js 中做生成函數(shù),配合第三方包實(shí)現(xiàn),功能實(shí)現(xiàn)了。但是如果是拓展包接入也要使用怎么辦?最后開(kāi)發(fā) webpack-laravel-mix-manifest 這個(gè)前端包,來(lái)生成這個(gè)文件。

拓展設(shè)計(jì)

首選,拓展設(shè)計(jì)目前有兩個(gè),分別是 plus-component 和 plus-plugin 其實(shí)都是由 Composer 中間插件實(shí)現(xiàn)。
composer 插件 zhiyicx/plus-install-plugin

plus-component
這個(gè)設(shè)計(jì)其實(shí)只是想拓展包可以快速的接入路由模板數(shù)據(jù)模型這些基礎(chǔ)開(kāi)發(fā),也是中間插件 1.0 版本中唯一實(shí)現(xiàn)的拓展方式,存在了長(zhǎng)達(dá)半年之久,可以快速的寫(xiě)路由、控制器、數(shù)據(jù)模型,目前我們團(tuán)隊(duì)出的應(yīng)用拓展都是以此方式開(kāi)發(fā)實(shí)現(xiàn)。
并封裝了 php artisan component 命令安裝。

plus-plugin
這是一個(gè)很年輕的 type 在 composer 插件 1.1 版本中增加的,這個(gè)拓展方式實(shí)現(xiàn)原理很簡(jiǎn)單,其實(shí)就是 Laravel 的 Service Provider ,熟悉 Laravel 開(kāi)發(fā)都知道,這個(gè)服務(wù)門(mén)面被稱(chēng)之為 "Laravel 拓展" 但是安裝并不方便,需要先 composer require vendor/name ,然后在 app.php 的 providers 字段中配置,然后運(yùn)行命令生成配置文件等。
考慮到 ThinkSNS+ 面向的都是站長(zhǎng)、創(chuàng)業(yè)者、企業(yè)集團(tuán)等用戶,讓他們改代碼?簡(jiǎn)直不如殺了他們。所以,萌生了一個(gè)想法,如何把這個(gè)步驟自動(dòng)化?讓用戶只需要 composer require vendor/name 就完成呢?而且,對(duì)于例如廣播系統(tǒng)的使用,很需要一個(gè)這樣的東西來(lái)方便開(kāi)發(fā)拓展。所以想辦法把這個(gè)步驟,在 composer require 步驟完成,由此開(kāi)發(fā)了這個(gè)模式。
Laravel 的拓展不能直接以這種方式使用喲,因?yàn)槲覀冏鲞@個(gè)的想法是把配置移交到后臺(tái)配置。

接口和 SPA

接口,在初期沒(méi)有完全考慮 REST ful 所以,你能會(huì)看到 URL 命名很像 REST ful 規(guī)范,實(shí)際數(shù)據(jù)卻不是,后續(xù)逐步規(guī)范化。
這里提到了 API 接口,意味著一個(gè)事情,我們拋棄了傳統(tǒng)網(wǎng)頁(yè),ThinkSNS+ 核心就是一個(gè) 用戶中心,然后功能全部由拓展實(shí)現(xiàn),目前后臺(tái)、手機(jī)端 都是采用 SPA 調(diào)用接口的形式開(kāi)發(fā)。

開(kāi)源代碼倉(cāng)庫(kù)

GitHub:https://github.com/zhiyicx/th...(點(diǎn)擊star,每日關(guān)注開(kāi)發(fā)動(dòng)態(tài)。)

開(kāi)源不易,為了爭(zhēng)取開(kāi)源,我們團(tuán)隊(duì)做了很多努力。把基于 Laravel 的作品展示在大家面前,之后專(zhuān)欄會(huì)持續(xù)不斷的分享 ThinkSNS+ 開(kāi)發(fā)過(guò)程中的技術(shù)細(xì)節(jié)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/23049.html

相關(guān)文章

  • 基于 Laravel 開(kāi)發(fā) ThinkSNS+ 中前端的抉擇(webpack/Vue)踩坑日記【社交

    摘要:在上一篇文章基于分支,從到,再到,簡(jiǎn)單的介紹了這里分享在開(kāi)發(fā)過(guò)程中,前端選擇的心理活動(dòng)。而作為核心開(kāi)發(fā)之一,也負(fù)責(zé)前端這塊的開(kāi)發(fā)。 在上一篇文章《 ThinkSNS+基于Laravel master分支,從1到 0,再到0.1》,簡(jiǎn)單的介紹了 ThinkSNS+ ,這里分享在開(kāi)發(fā)過(guò)程中,前端選擇的心理活動(dòng)。 Laravel Mix的放棄 在 Laravel 中,前端工作流默認(rèn)是由 la...

    songze 評(píng)論0 收藏0
  • 社交系統(tǒng)ThinkSNS+ 如何利用 Laravel 表單驗(yàn)證來(lái)驗(yàn)證用戶名的(我朝獨(dú)有需求,兩個(gè)字母

    摘要:言歸正傳,之所以寫(xiě)繼篇,其實(shí)是來(lái)檢討的,上一次發(fā)表了如何計(jì)算字符顯示長(zhǎng)度后,有網(wǎng)友幾經(jīng)測(cè)試后告知有問(wèn)題。簡(jiǎn)言之單字節(jié)字符占,多字節(jié)字符占字節(jié)。 什么是ThinkSNS+ ThinkSNS(簡(jiǎn)稱(chēng)TS)始于2008年,一款全平臺(tái)綜合性社交系統(tǒng),為國(guó)內(nèi)外大中小企業(yè)和創(chuàng)業(yè)者提供社會(huì)化軟件研發(fā)及技術(shù)解決方案,目前最新版本為T(mén)hinkSNS+。 后端框架使用laravel,每周和 laravel ...

    xiaodao 評(píng)論0 收藏0
  • 如何在 Laravel 中 “規(guī)范” 的開(kāi)發(fā)驗(yàn)證碼發(fā)送功能【社交系統(tǒng)ThinkSNS研發(fā)日記十一】

    摘要:需求場(chǎng)景發(fā)送驗(yàn)證碼或者消息通知,可發(fā)送到手機(jī)或郵箱中。完成首先,在中的規(guī)范就是使用的消息通知,這里基于場(chǎng)景為驗(yàn)證碼。所以我們?cè)隍?yàn)證碼模型中添加是完全符合通知的正確使用的。 順便發(fā)個(gè)小通知:7月15日ThinkSNS+開(kāi)源版發(fā)布,同時(shí)非開(kāi)源的APP也走出內(nèi)測(cè)階段,體驗(yàn)二維碼也全面發(fā)布體驗(yàn)。 什么是ThinkSNS ? ThinkSNS(簡(jiǎn)稱(chēng)TS),一款全平臺(tái)綜合性社交系統(tǒng),為國(guó)內(nèi)外大中小...

    Flands 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<