@@ -141,9 +141,9 @@ public static function pop($queue)
141141 public static function dequeue ($ queue , $ items = Array ())
142142 {
143143 if (count ($ items ) > 0 ) {
144- return self ::removeItems ($ queue , $ items );
144+ return self ::removeItems ($ queue , $ items );
145145 } else {
146- return self ::removeList ($ queue );
146+ return self ::removeList ($ queue );
147147 }
148148 }
149149
@@ -264,6 +264,20 @@ public static function queues()
264264 return $ queues ;
265265 }
266266
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+
267281 /**
268282 * Remove Items from the queue
269283 * Safely moving each item to a temporary queue before processing it
@@ -318,7 +332,7 @@ private static function removeItems($queue, $items = Array())
318332
319333 /**
320334 * 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}]
322336 * @private
323337 *
324338 * @params string $string redis result in json
@@ -331,24 +345,24 @@ private static function matchItem($string, $items)
331345 $ decoded = json_decode ($ string , true );
332346
333347 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+ }
345365 }
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- }
352366 }
353367 return false ;
354368 }
0 commit comments