szurubooru/src/Dao/CommentDao.php

52 lines
1.1 KiB
PHP
Raw Normal View History

2014-10-04 12:06:50 +02:00
<?php
namespace Szurubooru\Dao;
use Szurubooru\Dao\EntityConverters\CommentEntityConverter;
use Szurubooru\Dao\PostDao;
use Szurubooru\Dao\UserDao;
use Szurubooru\DatabaseConnection;
use Szurubooru\Entities\Comment;
use Szurubooru\Entities\Entity;
use Szurubooru\Entities\Post;
2014-10-04 12:06:50 +02:00
class CommentDao extends AbstractDao implements ICrudDao
{
private $userDao;
private $postDao;
public function __construct(
DatabaseConnection $databaseConnection,
UserDao $userDao,
PostDao $postDao)
2014-10-04 12:06:50 +02:00
{
parent::__construct(
$databaseConnection,
'comments',
new CommentEntityConverter());
2014-10-04 12:06:50 +02:00
$this->userDao = $userDao;
$this->postDao = $postDao;
}
public function findByPost(Post $post)
2014-10-04 12:06:50 +02:00
{
return $this->findBy('postId', $post->getId());
}
protected function afterLoad(Entity $comment)
2014-10-04 12:06:50 +02:00
{
$comment->setLazyLoader(
Comment::LAZY_LOADER_USER,
function (Comment $comment)
2014-10-04 12:06:50 +02:00
{
return $this->userDao->findById($comment->getUserId());
});
$comment->setLazyLoader(
Comment::LAZY_LOADER_POST,
function (Comment $comment)
2014-10-04 12:06:50 +02:00
{
return $this->postDao->findById($comment->getPostId());
});
}
}