@@ -36,30 +36,30 @@ public function __construct(CacheInterface $pool)
36
36
public function get ($ key , $ default = null )
37
37
{
38
38
$ miss = null !== $ default && is_object ($ default ) ? $ default : $ this ->miss ;
39
- $ event = $ this ->start (__FUNCTION__ , compact ( ' key ' , ' default ' ) );
39
+ $ event = $ this ->start (__FUNCTION__ );
40
40
try {
41
41
$ value = $ this ->pool ->get ($ key , $ miss );
42
42
} finally {
43
43
$ event ->end = microtime (true );
44
44
}
45
- if ($ miss !== $ value ) {
45
+ if ($ event -> result [ $ key ] = $ miss !== $ value ) {
46
46
++$ event ->hits ;
47
47
} else {
48
48
++$ event ->misses ;
49
49
$ value = $ default ;
50
50
}
51
51
52
- return $ event -> result = $ value ;
52
+ return $ value ;
53
53
}
54
54
55
55
/**
56
56
* {@inheritdoc}
57
57
*/
58
58
public function has ($ key )
59
59
{
60
- $ event = $ this ->start (__FUNCTION__ , compact ( ' key ' ) );
60
+ $ event = $ this ->start (__FUNCTION__ );
61
61
try {
62
- return $ event ->result = $ this ->pool ->has ($ key );
62
+ return $ event ->result [ $ key ] = $ this ->pool ->has ($ key );
63
63
} finally {
64
64
$ event ->end = microtime (true );
65
65
}
@@ -70,9 +70,9 @@ public function has($key)
70
70
*/
71
71
public function delete ($ key )
72
72
{
73
- $ event = $ this ->start (__FUNCTION__ , compact ( ' key ' ) );
73
+ $ event = $ this ->start (__FUNCTION__ );
74
74
try {
75
- return $ event ->result = $ this ->pool ->delete ($ key );
75
+ return $ event ->result [ $ key ] = $ this ->pool ->delete ($ key );
76
76
} finally {
77
77
$ event ->end = microtime (true );
78
78
}
@@ -83,9 +83,9 @@ public function delete($key)
83
83
*/
84
84
public function set ($ key , $ value , $ ttl = null )
85
85
{
86
- $ event = $ this ->start (__FUNCTION__ , compact ( ' key ' , ' value ' , ' ttl ' ) );
86
+ $ event = $ this ->start (__FUNCTION__ );
87
87
try {
88
- return $ event ->result = $ this ->pool ->set ($ key , $ value , $ ttl );
88
+ return $ event ->result [ $ key ] = $ this ->pool ->set ($ key , $ value , $ ttl );
89
89
} finally {
90
90
$ event ->end = microtime (true );
91
91
}
@@ -96,9 +96,23 @@ public function set($key, $value, $ttl = null)
96
96
*/
97
97
public function setMultiple ($ values , $ ttl = null )
98
98
{
99
- $ event = $ this ->start (__FUNCTION__ , compact ('values ' , 'ttl ' ));
99
+ $ event = $ this ->start (__FUNCTION__ );
100
+ $ event ->result ['keys ' ] = array ();
101
+
102
+ if ($ values instanceof \Traversable) {
103
+ $ values = function () use ($ values , $ event ) {
104
+ foreach ($ values as $ k => $ v ) {
105
+ $ event ->result ['keys ' ][] = $ k ;
106
+ yield $ k => $ v ;
107
+ }
108
+ };
109
+ $ values = $ values ();
110
+ } elseif (is_array ($ values )) {
111
+ $ event ->result ['keys ' ] = array_keys ($ values );
112
+ }
113
+
100
114
try {
101
- return $ event ->result = $ this ->pool ->setMultiple ($ values , $ ttl );
115
+ return $ event ->result [ ' result ' ] = $ this ->pool ->setMultiple ($ values , $ ttl );
102
116
} finally {
103
117
$ event ->end = microtime (true );
104
118
}
@@ -110,7 +124,7 @@ public function setMultiple($values, $ttl = null)
110
124
public function getMultiple ($ keys , $ default = null )
111
125
{
112
126
$ miss = null !== $ default && is_object ($ default ) ? $ default : $ this ->miss ;
113
- $ event = $ this ->start (__FUNCTION__ , compact ( ' keys ' , ' default ' ) );
127
+ $ event = $ this ->start (__FUNCTION__ );
114
128
try {
115
129
$ result = $ this ->pool ->getMultiple ($ keys , $ miss );
116
130
} finally {
@@ -119,13 +133,13 @@ public function getMultiple($keys, $default = null)
119
133
$ f = function () use ($ result , $ event , $ miss , $ default ) {
120
134
$ event ->result = array ();
121
135
foreach ($ result as $ key => $ value ) {
122
- if ($ miss !== $ value ) {
136
+ if ($ event -> result [ $ key ] = $ miss !== $ value ) {
123
137
++$ event ->hits ;
124
138
} else {
125
139
++$ event ->misses ;
126
140
$ value = $ default ;
127
141
}
128
- yield $ key => $ event -> result [ $ key ] = $ value ;
142
+ yield $ key => $ value ;
129
143
}
130
144
};
131
145
@@ -150,9 +164,14 @@ public function clear()
150
164
*/
151
165
public function deleteMultiple ($ keys )
152
166
{
153
- $ event = $ this ->start (__FUNCTION__ , compact ('keys ' ));
167
+ $ event = $ this ->start (__FUNCTION__ );
168
+ if ($ keys instanceof \Traversable) {
169
+ $ keys = $ event ->result ['keys ' ] = iterator_to_array ($ keys , false );
170
+ } else {
171
+ $ event ->result ['keys ' ] = $ keys ;
172
+ }
154
173
try {
155
- return $ event ->result = $ this ->pool ->deleteMultiple ($ keys );
174
+ return $ event ->result [ ' result ' ] = $ this ->pool ->deleteMultiple ($ keys );
156
175
} finally {
157
176
$ event ->end = microtime (true );
158
177
}
@@ -167,11 +186,10 @@ public function getCalls()
167
186
}
168
187
}
169
188
170
- private function start ($ name, array $ arguments = null )
189
+ private function start ($ name )
171
190
{
172
191
$ this ->calls [] = $ event = new TraceableCacheEvent ();
173
192
$ event ->name = $ name ;
174
- $ event ->arguments = $ arguments ;
175
193
$ event ->start = microtime (true );
176
194
177
195
return $ event ;
@@ -181,7 +199,6 @@ private function start($name, array $arguments = null)
181
199
class TraceableCacheEvent
182
200
{
183
201
public $ name ;
184
- public $ arguments ;
185
202
public $ start ;
186
203
public $ end ;
187
204
public $ result ;
0 commit comments