parent
45eabf2503
commit
9519287329
@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Silex\Gateway;
|
||||
|
||||
use DateTime;
|
||||
use PDO;
|
||||
use Silex\Model\Comment;
|
||||
|
||||
class CommentGateway
|
||||
{
|
||||
private PDO $pdo;
|
||||
|
||||
public function __construct(PDO $pdo)
|
||||
{
|
||||
$this->pdo = $pdo;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Comment[]
|
||||
*/
|
||||
public function getByNewsId(int $id): array
|
||||
{
|
||||
$req = $this->pdo->prepare('SELECT * FROM comment WHERE news_id = :id ORDER BY publication_date DESC');
|
||||
$req->bindValue(':id', $id, PDO::PARAM_INT);
|
||||
if (!$req->execute()) {
|
||||
return [];
|
||||
}
|
||||
$comments = [];
|
||||
while ($data = $req->fetch()) {
|
||||
$comments[] = $this->createComment($data);
|
||||
}
|
||||
return $comments;
|
||||
}
|
||||
|
||||
private function createComment(array $data): Comment
|
||||
{
|
||||
return new Comment(intval($data['id_comment']),intval($data['news_id']), DateTime::createFromFormat('Y-m-d H:i:s', $data['publication_date']), $data['content'], intval($data['author_id']));
|
||||
}
|
||||
}
|
@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Silex\Model;
|
||||
|
||||
use DateTime;
|
||||
|
||||
class Comment
|
||||
{
|
||||
private int $idComment;
|
||||
private int $newsId;
|
||||
private DateTime $publicationDate;
|
||||
private string $content;
|
||||
private int $authorId;
|
||||
|
||||
public function __construct(int $idComment, int $newsId, DateTime $publicationDate, string $content, int $authorId)
|
||||
{
|
||||
$this->idComment = $idComment;
|
||||
$this->newsId = $newsId;
|
||||
$this->publicationDate = $publicationDate;
|
||||
$this->content = $content;
|
||||
$this->authorId = $authorId;
|
||||
}
|
||||
|
||||
public function getCommentId(): int
|
||||
{
|
||||
return $this->idComment;
|
||||
}
|
||||
|
||||
public function getNewsId(): int
|
||||
{
|
||||
return $this->newsId;
|
||||
}
|
||||
|
||||
public function getPublicationDate(): DateTime
|
||||
{
|
||||
return $this->publicationDate;
|
||||
}
|
||||
|
||||
public function getContent(): string
|
||||
{
|
||||
return $this->content;
|
||||
}
|
||||
|
||||
public function getAuthorId(): int
|
||||
{
|
||||
return $this->authorId;
|
||||
}
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
<?php $params['title'] = 'Comment'; ?>
|
||||
<h1>Comments</h1>
|
||||
<?php foreach ($params['comments'] as $comment) : ?>
|
||||
<div class="card">
|
||||
<header class="card-header">
|
||||
<p class="card-header-title">
|
||||
<?= $comment->getCommentId() ?>
|
||||
</p>
|
||||
</header>
|
||||
<div class="card-content">
|
||||
<div class="content">
|
||||
<?= "AuthorId :" . $comment->getAuthorId() . " published on " . $comment->getPublicationDate()->format('Y-m-d H:i:s') ?>
|
||||
</div>
|
||||
<div class="content">
|
||||
<?= $comment->getContent() ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endforeach ?>
|
@ -0,0 +1,14 @@
|
||||
<?php $params['title'] = 'NewsView'; ?>
|
||||
<h1>News</h1>
|
||||
<div class="card">
|
||||
<header class="card-header">
|
||||
<p class="card-header-title">
|
||||
<?= $params['news']->getTitle() ?>
|
||||
</p>
|
||||
</header>
|
||||
<div class="card-content">
|
||||
<div class="content">
|
||||
<?= $params['news']->getContent() ?>...
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
Loading…
Reference in new issue