2
2
namespace Barryvdh \Debugbar \DataCollector ;
3
3
4
4
use DebugBar \DataCollector \TimeDataCollector ;
5
+ use Illuminate \Cache \Events \CacheEvent ;
6
+ use Illuminate \Cache \Events \CacheHit ;
7
+ use Illuminate \Cache \Events \CacheMissed ;
8
+ use Illuminate \Cache \Events \KeyForgotten ;
9
+ use Illuminate \Cache \Events \KeyWritten ;
5
10
use Illuminate \Events \Dispatcher ;
6
11
7
12
class CacheCollector extends TimeDataCollector
@@ -11,10 +16,10 @@ class CacheCollector extends TimeDataCollector
11
16
12
17
/** @var array */
13
18
protected $ classMap = [
14
- ' Illuminate\Cache\Events\ CacheHit' => 'hit ' ,
15
- ' Illuminate\Cache\Events\ CacheMissed' => 'missed ' ,
16
- ' Illuminate\Cache\Events\ KeyWritten' => 'write ' ,
17
- ' Illuminate\Cache\Events\ KeyForgotten' => 'delete ' ,
19
+ CacheHit::class => 'hit ' ,
20
+ CacheMissed::class => 'missed ' ,
21
+ KeyWritten::class => 'written ' ,
22
+ KeyForgotten::class => 'forgotten ' ,
18
23
];
19
24
20
25
public function __construct ($ requestStartTime = null , $ collectValues )
@@ -24,70 +29,28 @@ public function __construct($requestStartTime = null, $collectValues)
24
29
$ this ->collectValues = $ collectValues ;
25
30
}
26
31
27
- public function onClassEvent ( $ name , $ event = null )
32
+ public function onCacheEvent ( CacheEvent $ event )
28
33
{
29
- if (is_object ($ name )) {
30
- $ event = $ name ;
31
- }
32
-
33
- if (is_array ($ event )) {
34
- $ event = $ event [0 ];
35
- }
36
-
37
34
$ class = get_class ($ event );
38
- if (isset ($ this ->classMap [$ class ])) {
39
- $ params = [];
40
-
41
- if (isset ($ event ->minutes )) {
42
- $ params ['minutes ' ] = $ event ->minutes ;
43
- }
44
-
45
- if (isset ($ event ->value )) {
46
- if ($ this ->collectValues ) {
47
- $ params ['value ' ] = $ this ->getDataFormatter ()->formatVar ($ event ->value );
48
- } else {
49
- $ params ['value ' ] = '(values collecting turned off) ' ;
50
- }
51
- }
52
-
53
- if (!empty ($ event ->tags )) {
54
- $ params ['tags ' ] = $ event ->tags ;
55
- }
35
+ $ params = get_object_vars ($ event );
56
36
57
- $ time = microtime (true );
58
- $ this ->addMeasure ($ this ->classMap [$ class ] . ' ' . $ event ->key , $ time , $ time , $ params );
59
- }
60
- }
61
-
62
- public function onStringEvent ($ event , $ payload )
63
- {
64
- $ params = [];
65
-
66
- if (is_array ($ payload )) {
67
- if (isset ($ payload [2 ])) {
68
- $ params ['minutes ' ] = $ payload [2 ];
69
- }
70
-
71
- if (isset ($ payload [1 ])) {
72
- if ($ this ->collectValues ) {
73
- $ params ['value ' ] = $ this ->getDataFormatter ()->formatVar ($ payload [1 ]);
74
- } else {
75
- $ params ['value ' ] = '(values collecting turned off) ' ;
76
- }
37
+ if (isset ($ params ['value ' ])) {
38
+ if ($ this ->collectValues ) {
39
+ $ params ['value ' ] = $ this ->getDataFormatter ()->formatVar ($ event ->value );
40
+ } else {
41
+ unset($ params ['value ' ]);
77
42
}
78
43
}
79
44
80
45
$ time = microtime (true );
81
- $ this ->addMeasure ( str_replace ('cache. ' , '' , $ event ) . ' ' . (is_array ($ payload ) ? $ payload [0 ] : $ payload ),
82
- $ time , $ time , $ params );
46
+ $ this ->addMeasure ($ this ->classMap [$ class ] . "\t" . $ event ->key , $ time , $ time , $ params );
83
47
}
84
48
85
- public function subscribe (Dispatcher $ events )
49
+
50
+ public function subscribe (Dispatcher $ dispatcher )
86
51
{
87
- if (class_exists ('Illuminate\Cache\Events\CacheHit ' )) {
88
- $ events ->listen ('Illuminate\Cache\Events\* ' , [$ this , 'onClassEvent ' ]);
89
- } else {
90
- $ events ->listen ('cache.* ' , [$ this , 'onStringEvent ' ]);
52
+ foreach ($ this ->classMap as $ eventClass => $ type ) {
53
+ $ dispatcher ->listen ($ eventClass , [$ this , 'onCacheEvent ' ]);
91
54
}
92
55
}
93
56
0 commit comments