From ee09a09833fc4347cb584afa44a0054c3721371a Mon Sep 17 00:00:00 2001 From: rr- Date: Wed, 25 Nov 2015 11:35:18 +0100 Subject: [PATCH] Fixed lazy loading users and posts for Favorite --- src/Dao/FavoritesDao.php | 25 +++++++++++++++++++++++++ tests/Services/UserServiceTest.php | 4 ++-- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/Dao/FavoritesDao.php b/src/Dao/FavoritesDao.php index 4f23cc89..e4952b88 100644 --- a/src/Dao/FavoritesDao.php +++ b/src/Dao/FavoritesDao.php @@ -1,6 +1,8 @@ userDao = $userDao; + $this->postDao = $postDao; $this->timeService = $timeService; } @@ -58,6 +66,23 @@ class FavoritesDao extends AbstractDao implements ICrudDao $this->deleteById($favorite->getId()); } + protected function afterLoad(Entity $favorite) + { + $favorite->setLazyLoader( + Favorite::LAZY_LOADER_USER, + function (Favorite $favorite) + { + return $this->userDao->findById($favorite->getUserId()); + }); + + $favorite->setLazyLoader( + Favorite::LAZY_LOADER_POST, + function (Favorite $favorite) + { + return $this->postDao->findById($favorite->getPostId()); + }); + } + private function get(User $user, Entity $entity) { $query = $this->pdo->from($this->tableName)->where('userId', $user->getId()); diff --git a/tests/Services/UserServiceTest.php b/tests/Services/UserServiceTest.php index a8a3d43e..f599a573 100644 --- a/tests/Services/UserServiceTest.php +++ b/tests/Services/UserServiceTest.php @@ -97,7 +97,7 @@ final class UserServiceTest extends AbstractTestCase $this->assertNull($savedUser->getEmailUnconfirmed()); $this->assertEquals('hash', $savedUser->getPasswordHash()); $this->assertEquals(User::ACCESS_RANK_REGULAR_USER, $savedUser->getAccessRank()); - $this->assertEquals('now', $savedUser->getRegistrationTime()); + $this->assertEquals('now', $savedUser->getCreationTime()); $this->assertTrue($savedUser->isAccountConfirmed()); } @@ -130,7 +130,7 @@ final class UserServiceTest extends AbstractTestCase $this->assertEquals('human@people.gov', $savedUser->getEmailUnconfirmed()); $this->assertEquals('hash', $savedUser->getPasswordHash()); $this->assertEquals(User::ACCESS_RANK_POWER_USER, $savedUser->getAccessRank()); - $this->assertEquals('now', $savedUser->getRegistrationTime()); + $this->assertEquals('now', $savedUser->getCreationTime()); $this->assertFalse($savedUser->isAccountConfirmed()); }