ThinkSNS入門基礎

經過一些網絡檢索發現,像知乎等相關網站裏關於ThinkSNS的專業技術信息相對較少,許多程序員們想檢索一些關於ThinkSNS技術文檔卻無從得到。所以我便寫了這篇關於ThinkSNS技術方面的文章同諸多喜歡ThinkSNS的創業者們分享,同時也爲開發者提供本身在技術方面的看法。php

 

 

 

1、咱們常說的TS是什麼?程序員

首先,咱們來熟悉下什麼是TS,TS就是「ThinkSNS」的縮寫,喜好TS程序的人,咱們稱之爲TSer。TS是一款開源程序,代碼託管平臺是GitHub,全部的細節修改,均爲透明性更新。數據庫

 

使用者能夠經過官網和官方演示社區(Demo站)以及GitHub倉庫得到TS最新的開發動態~固然,若是你有興趣也能夠Pull requesTS(簡稱PR)代碼給TS開發人員,開發人員獲得代碼以後若是符合開源需求,就會合併到TS版本的當中,若是普通用戶遇到問題,能夠在demo站或者Github中提交Issues,均會獲得開發人員的統一回復。緩存

 

TS對PHP版本要求壓得比較低,基本行業都跨入了php5.5 or php5.6階段了~可是考慮到國內大部分小衆虛擬主機以及不少對相關專業知識不瞭解的人,因此,TS把php版本壓低到了php5.3.12版本~固然,有人認爲爲何小版本是12,這個版本是php5.3的第一個穩定版~也就是這個小版本以前的版本都不是穩定版,因此不推薦安裝使用。安全

 

2、Laravel框架Eloquent ORM 與TP框架服務器

 

TS在2016年的開發過程當中作了比較大的底層架構變更。衆所周知,TS的底層是基於ThinkPHP框架進行二次修改的,用戶不能就ThinkPHP直接對TS進行升級其中一個主要緣由就是TP框架並不是徹底遵循的MIT開源協議。固然,對開發者來講TP框架技術架構自己也存在不夠先進和過於抽象的問題。因此綜合考慮,TS在數據交換時使用了Laravel框架的Eloquent ORM 。網絡

 

Eloquent ORM 的優點是什麼?這款ORM對數據的處理比較相似於Node.js的數據處理即一切皆爲對象,並且ORM對數據關係的處理效率是不輸於doctrine的,這也是TS這麼選擇的緣由。固然,考慮更多的是爲之後更先進的架構作準備。TS將慢慢採用拓展方式進行開發,並對整個TS程序作架構數據交換等。php7

新的ORM的引入讓TS考慮php7平臺的運行,但php7已經徹底刪除了MySQL的 鏈接方式,只有PDO和MySQLi。那麼,若是想要在php7環境下運行,一定對DB類作從新修改,可是考慮到兼容性的問題,因此目前依舊在舊的應用上,仍是由model生成SQL,而後把SQL交給PDO來執行。而新開發的應用和功能均使用全新的ORM作的數據開發。架構

 

 

 

 

3、TS技術優點與拓展框架

除了引入新的ORM,TS還有不少技術優點,好比:有更容易被理解和集成的基類。這些基類是在第三方庫的基礎上進行二次封裝,使TS的模塊開發中設置的屬性更加標準,也使開發入門更簡單。由於,若是繼承等都是由開發者去集成第三方的類,那麼按照國情,這幾乎是不可能的。而在此基礎上開發者只須要看下基類,就知道集成後本身須要作什麼,無需去學習第三方類。

TS新的拓展(目前是應用)中,原來的靜態資源直接引用應用下的資源,在新的架構中,TS的應用都會被統一移動到一個公開緩存目錄中,方便外部調用。如此設計是爲了使得TS更加安全。這樣用戶就能夠在不暴露代碼的前提下獲得應用中嵌套的靜態資源,站長或者開發人員能夠更安全的把非公開代碼保留在暴露目錄的上層隱藏起來。

那TS具體有哪些功能特點呢?這個問題基本上是仁者見仁智者見智了。由於TS集大成於一身,除了包含社交核心功能外,還有微吧、頻道、資訊,活動、商城等,同時還有許多不一樣行業屬性的TS合做產品,如圖:

 

 

4、聊天和風向纔是社交的核心

 

TS具備獨立開發的原生即時聊天系統。咱們知道,聊天和風向纔是社交的核心。在PC中,TS使用JS輪詢來實現消息的接收等操做;移動端中,TS使用了先進的技術方式—Socket技術,爲了保證用戶記錄的不丟失,避免了P2P點對點傳輸,程序由一個客戶端推送給服務器,服務器在把消息轉推給另外一個客戶端,並在數據庫中概率,達到了多端同時到達的目的。

相關文章
相關標籤/搜索