激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - laravel 使用事件系統統計瀏覽量的實現

laravel 使用事件系統統計瀏覽量的實現

2021-09-06 17:17懶驢打滾 PHP教程

今天小編就為大家分享一篇laravel 使用事件系統統計瀏覽量的實現,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

最近有一個商城項目中有統計商品點擊量和藝術家訪問量的需求,但又不想改動太多原來的代碼,而點擊與訪問這兩個動作是有明確觸發點的,正好可以用laravel中的事件系統來做,在點擊和訪問對應的函數中產生這倆事件,監視器獲取到之后,再將記錄保存到數據庫中,并更新計數。

1、在 app\Providers\EventServiceProvider

中注冊監聽器:

?
1
2
3
4
5
6
7
8
9
10
11
12
/**
 * The event listener mappings for the application.
 *
 * @var array
 */
protected $listen = [
 ......
 'App\Events\Statistics' => [
  'App\Listeners\BehavioralStatistics',
 ],
 ......
];

2、執行

?
1
php artisan event:generate

生成事件類與監聽類

3、定義事件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
 
namespace App\Events;
 
use Illuminate\Broadcasting\Channel;
use Illuminate\Queue\SerializesModels;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
 
class Statistics
{
 use Dispatchable, InteractsWithSockets, SerializesModels;
 
 public $user;
 public $obj;
 
 /**
  * Create a new event instance.
  *
  * @return void
  */
 public function __construct($user,$obj)
 {
  $this->user = $user;
  $this->obj = $obj;
 }
 
 /**
  * Get the channels the event should broadcast on.
  *
  * @return \Illuminate\Broadcasting\Channel|array
  */
 public function broadcastOn()
 {
  return new PrivateChannel('channel-name');
 }
}

4、定義監聽器:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
 
namespace App\Listeners;
 
use App\Events\Statistics;
use App\System\StaticsView;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Support\Facades\Log;
 
class BehavioralStatistics
{
 /**
  * Create the event listener.
  *
  * @return void
  */
 public function __construct()
 {
  //
 }
 
 /**
  * Handle the event.
  *
  * @param Statistics $event
  * @return void
  */
 public function handle(Statistics $event)
 {
  $obj_class = get_class($event->obj);
  $statics_view = new StaticsView;
 
  switch($obj_class){
   case "App\\User":
    $statics_view->statics_type = 'user';
 
    break;
   case "App\\Production":
    $statics_view->statics_type = 'production';
 
    break;
  }
 
  $statics_view->ip = request()->getClientIp();;
  $statics_view->time_local = 0;
  $statics_view->statics_id = $event->obj->id;
  $statics_view->save();
 }
}

5、觸發事件:

?
1
event(new Statistics(user, user,user,production));

以上這篇laravel 使用事件系統統計瀏覽量的實現就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/hhhzua/article/details/80635808

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 毛片视频在线免费观看 | 国产精品一区二区羞羞答答 | 免费一区区三区四区 | 亚洲精品7777xxxx青睐 | 免费一级毛片在线播放视频 | 在线视频欧美一区 | 成人一级在线 | av最新在线 | 成人视屏在线 | 奇米影视8888狠狠狠狠 | 精品一区二区免费视频视频 | 久久另类视频 | 精品一区二区三区在线观看国产 | 国产乱淫a∨片免费视频 | 羞羞视频免费入口网站 | 欧美国产日韩在线观看成人 | 欧洲精品视频在线观看 | 一日本道久久久精品国产 | 91精品国产91久久久 | a黄色片| 免费一级特黄毛片 | 久久久国产精品免费观看 | 国产又粗又爽又深的免费视频 | 最近日本电影hd免费观看 | 91av大片 | 欧美一级毛片美99毛片 | 国产精品久久久免费观看 | 精品一区二区免费视频视频 | 久久影库 | 日韩av片在线免费观看 | 视频一区二区国产 | 免费a级片在线观看 | 久久精品站 | 中文字幕在线永久 | 国产男女 爽爽爽爽视频 | 91在线视频网址 | 久久色亚洲 | 朋友不在家 | 久久精品国产99久久久古代 | av在线等 | 亚洲第九十九页 |