相關(guān)關(guān)鍵詞
關(guān)于我們
最新文章
- PHP中opcode緩存簡(jiǎn)單用法分析
- thinkPHP控制器變量在模板中的顯示方法示例
- PHP move_uploaded_file() 函數(shù)(將上傳的文件移動(dòng)到新位置)
- dirname(__FILE__)的含義和應(yīng)用說(shuō)明
- thinkPHP5框架實(shí)現(xiàn)分頁(yè)查詢功能的方法示例
- 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事件系統(tǒng)如何實(shí)現(xiàn)登錄日志的記錄詳解
本文介紹的是利用Laravel事件系統(tǒng)實(shí)現(xiàn)登錄日志記錄的相關(guān)內(nèi)容,分享出來(lái)給大家參考,下面來(lái)看看詳細(xì)的介紹:
明確需求
記錄一個(gè)登錄日志,通常需要下列信息:
- 客戶端Agent信息
- 客戶端IP地址
- 訪問IP地點(diǎn)
- 登錄時(shí)間
- 登錄用戶信息
確立工具
明確完需求后,根據(jù)每個(gè)需求查找自己所需的工具吧。
- 需求1 jenssegers/agent就可以滿足我們要求
- 需求2 Laravel下直接
Request::getClientIp()
- 需求3 zhuzhichao/ip-location-zh這個(gè)包可以滿足要求
- 需求4 time()
- 需求5 登錄用戶模型
開工
采用Laravel的事件訂閱系統(tǒng)來(lái)實(shí)現(xiàn),需要實(shí)現(xiàn)一個(gè)登錄事件和一個(gè)登錄事件監(jiān)聽器。
生成事件和監(jiān)聽器
Laravel命令行支持自動(dòng)生成事件和監(jiān)聽器,在App\Providers\EventServiceProvider中添加需要實(shí)現(xiàn)的事件:
protected $listen = [ ..., //添加登錄事件及對(duì)應(yīng)監(jiān)聽器,一個(gè)事件可綁定多個(gè)監(jiān)聽器 'App\Events\LoginEvent' => [ 'App\Listeners\LoginListener', ], ];