Browse Source

Handle case when there are no popular packages

Change-Id: I6957791ed9f4d66a2fffe5e9b64bbc5a4be6710e
Denis Uraganov 12 years ago
parent
commit
05e186d9a3
1 changed files with 7 additions and 4 deletions
  1. 7 4
      src/Packagist/WebBundle/Controller/WebController.php

+ 7 - 4
src/Packagist/WebBundle/Controller/WebController.php

@@ -95,11 +95,14 @@ class WebController extends Controller
         $randomIds = $this->getDoctrine()->getConnection()->fetchAll('SELECT id FROM package ORDER BY RAND() LIMIT 10');
         $random = $pkgRepo->createQueryBuilder('p')->where('p.id IN (:ids)')->setParameter('ids', $randomIds)->getQuery()->getResult();
         try {
+            $popular = array();
             $popularIds = $this->get('snc_redis.default')->zrevrange('downloads:trending', 0, 9);
-            $popular = $pkgRepo->createQueryBuilder('p')->where('p.id IN (:ids)')->setParameter('ids', $popularIds)->getQuery()->getResult();
-            usort($popular, function ($a, $b) use ($popularIds) {
-                return array_search($a->getId(), $popularIds) > array_search($b->getId(), $popularIds) ? 1 : -1;
-            });
+            if ($popularIds){
+                $popular = $pkgRepo->createQueryBuilder('p')->where('p.id IN (:ids)')->setParameter('ids', $popularIds)->getQuery()->getResult();
+                usort($popular, function ($a, $b) use ($popularIds) {
+                    return array_search($a->getId(), $popularIds) > array_search($b->getId(), $popularIds) ? 1 : -1;
+                });
+            }
         } catch (ConnectionException $e) {
             $popular = array();
         }