@@ -141,9 +141,9 @@ public static function pop($queue)
141
141
public static function dequeue ($ queue , $ items = Array ())
142
142
{
143
143
if (count ($ items ) > 0 ) {
144
- return self ::removeItems ($ queue , $ items );
144
+ return self ::removeItems ($ queue , $ items );
145
145
} else {
146
- return self ::removeList ($ queue );
146
+ return self ::removeList ($ queue );
147
147
}
148
148
}
149
149
@@ -264,6 +264,20 @@ public static function queues()
264
264
return $ queues ;
265
265
}
266
266
267
+ /**
268
+ * Retrieve all the items of a queue with Redis
269
+ *
270
+ * @return array Array of items.
271
+ */
272
+ public static function items ($ queue , $ start = 0 , $ stop = -1 )
273
+ {
274
+ $ list = self ::redis ()->lrange ('queue: ' . $ queue , $ start , $ stop );
275
+ if (!is_array ($ list )) {
276
+ $ list = array ();
277
+ }
278
+ return $ list ;
279
+ }
280
+
267
281
/**
268
282
* Remove Items from the queue
269
283
* Safely moving each item to a temporary queue before processing it
@@ -318,7 +332,7 @@ private static function removeItems($queue, $items = Array())
318
332
319
333
/**
320
334
* matching item
321
- * item can be ['class'] or ['class' => 'id'] or ['class' => {: foo => 1, : bar => 2}]
335
+ * item can be ['class'] or ['class' => 'id'] or ['class' => {' foo' => 1, ' bar' => 2}]
322
336
* @private
323
337
*
324
338
* @params string $string redis result in json
@@ -331,24 +345,24 @@ private static function matchItem($string, $items)
331
345
$ decoded = json_decode ($ string , true );
332
346
333
347
foreach ($ items as $ key => $ val ) {
334
- # class name only ex: item[0] = ['class']
335
- if (is_numeric ($ key )) {
336
- if ($ decoded ['class ' ] == $ val ) {
337
- return true ;
338
- }
339
- # class name with args , example: item[0] = ['class' => {'foo' => 1, 'bar' => 2}]
340
- } elseif (is_array ($ val )) {
341
- $ decodedArgs = (array )$ decoded ['args ' ][0 ];
342
- if ($ decoded ['class ' ] == $ key &&
343
- count ($ decodedArgs ) > 0 && count (array_diff ($ decodedArgs , $ val )) == 0 ) {
344
- return true ;
348
+ # class name only ex: item[0] = ['class']
349
+ if (is_numeric ($ key )) {
350
+ if ($ decoded ['class ' ] == $ val ) {
351
+ return true ;
352
+ }
353
+ # class name with args , example: item[0] = ['class' => {'foo' => 1, 'bar' => 2}]
354
+ } elseif (is_array ($ val )) {
355
+ $ decodedArgs = (array )$ decoded ['args ' ][0 ];
356
+ if ($ decoded ['class ' ] == $ key &&
357
+ count ($ decodedArgs ) > 0 && count (array_diff ($ decodedArgs , $ val )) == 0 ) {
358
+ return true ;
359
+ }
360
+ # class name with ID, example: item[0] = ['class' => 'id']
361
+ } else {
362
+ if ($ decoded ['class ' ] == $ key && $ decoded ['id ' ] == $ val ) {
363
+ return true ;
364
+ }
345
365
}
346
- # class name with ID, example: item[0] = ['class' => 'id']
347
- } else {
348
- if ($ decoded ['class ' ] == $ key && $ decoded ['id ' ] == $ val ) {
349
- return true ;
350
- }
351
- }
352
366
}
353
367
return false ;
354
368
}
0 commit comments