Browse Source

Avoid failures on second page of favs

Jordi Boggiano 11 years ago
parent
commit
aa8489b7c2
1 changed files with 12 additions and 9 deletions
  1. 12 9
      src/Packagist/WebBundle/Controller/UserController.php

+ 12 - 9
src/Packagist/WebBundle/Controller/UserController.php

@@ -92,21 +92,24 @@ class UserController extends Controller
      */
     public function favoritesAction(Request $req, User $user)
     {
-        $paginator = new Pagerfanta(
-            new RedisAdapter($this->get('packagist.favorite_manager'), $user, 'getFavorites', 'getFavoriteCount')
-        );
-
-        $paginator->setMaxPerPage(15);
-        $paginator->setCurrentPage($req->query->get('page', 1), false, true);
-
         try {
-            $this->get('snc_redis.default')->connect();
+            if (!$this->get('snc_redis.default')->isConnected()) {
+                $this->get('snc_redis.default')->connect();
+            }
         } catch (\Exception $e) {
             $this->get('session')->getFlashBag()->set('error', 'Could not connect to the Redis database.');
+            $this->get('logger')->notice($e->getMessage(), array('exception' => $e));
 
             return array('user' => $user, 'packages' => array());
         }
 
+        $paginator = new Pagerfanta(
+            new RedisAdapter($this->get('packagist.favorite_manager'), $user, 'getFavorites', 'getFavoriteCount')
+        );
+
+        $paginator->setMaxPerPage(15);
+        $paginator->setCurrentPage($req->query->get('page', 1), false, true);
+
         return array('packages' => $paginator, 'user' => $user);
     }
 
@@ -167,4 +170,4 @@ class UserController extends Controller
 
         return $paginator;
     }
-}
+}