相關(guān)關(guān)鍵詞
關(guān)于我們
最新文章
- PHP中opcode緩存簡單用法分析
- thinkPHP控制器變量在模板中的顯示方法示例
- PHP move_uploaded_file() 函數(shù)(將上傳的文件移動(dòng)到新位置)
- dirname(__FILE__)的含義和應(yīng)用說明
- thinkPHP5框架實(shí)現(xiàn)分頁查詢功能的方法示例
- PHP中單雙號(hào)與變量
- PHP獲得當(dāng)日零點(diǎn)時(shí)間戳的方法分析
- Laravel ORM對(duì)Model::find方法進(jìn)行緩存示例詳解
- PHP讀寫文件高并發(fā)處理操作實(shí)例詳解
- 【CLI】利用Curl下載文件實(shí)時(shí)進(jìn)度條顯示的實(shí)現(xiàn)
基于Laravel實(shí)現(xiàn)的用戶動(dòng)態(tài)模塊開發(fā)
前言
相信大家都知道,幾乎所有的社區(qū)應(yīng)用都有用戶動(dòng)態(tài)這個(gè)部分,用戶可以通過好友動(dòng)態(tài)獲能取到更多感興趣的內(nèi)容,從而提高社區(qū)活躍度和用戶粘性。它的實(shí)現(xiàn)相對(duì)來講比普通的內(nèi)容發(fā)布要復(fù)雜一些,主要體現(xiàn)在內(nèi)容多樣性上。
為了解決這個(gè)問題,我們得把這些不同類型的內(nèi)容抽象,提取共性,使用相同的結(jié)構(gòu)來處理,開發(fā)起來就會(huì)簡單很多。
概念抽象
用戶動(dòng)態(tài),顧名思義,動(dòng)態(tài)的產(chǎn)生,就是一系列事件的歷史記錄,所以首先關(guān)注“事件”這個(gè)名詞,它有哪些屬性:
- 觸發(fā)者,基于社區(qū)所有的事件幾乎都是由用戶觸發(fā)的
- 事件主體,事件的主體信息,例如“xxx發(fā)布了文章” 中的 “文章”。
- 事件屬性,事件主體不同,所需要的附加信息也不同,比如事件類型。
- 發(fā)生時(shí)間,記錄事件產(chǎn)生的時(shí)間,當(dāng)然了在我們的數(shù)據(jù)庫通常記錄了所有數(shù)據(jù)產(chǎn)生的時(shí)間。
我們將用戶動(dòng)態(tài)抽象成只有 4 個(gè)基礎(chǔ)屬性的結(jié)構(gòu),就比較容易實(shí)現(xiàn)了:
- description 事件描述 - causer_id 或者 user_id 事件觸發(fā)者 - subject_id 主體 ID - subject_type 主體類型 - properties 事件附加屬性 - created_at 事件產(chǎn)生時(shí)間