Ajoute le News Controller

main
Colin FRIZOT 3 years ago
parent 86827d1983
commit 53038a5022

@ -11,5 +11,6 @@ $loader->register();
$controller = new \Silex\Controller\UserController();
$router = new Router($_SERVER['REQUEST_URI']);
$router->get('/^$/', [$controller, 'index']);
$router->get('/^news\/(?<id>[\w-]+)$/', [$controller, 'viewPost']);
//$router->get('/^inscription$/', [$controller, 'connexion']);
$router->run(new \Silex\DI\DI())->render(__DIR__ . '/../' . VIEW_PATH);

@ -14,4 +14,11 @@ class UserController
$news = $di->getNewsGateway()->getPaginatedRecentNews();
return new HttpResponse(200, 'home', ['news' => $news]);
}
public function viewPost(DI $di, array $params): HttpResponse
{
$newsId = intval($params['id']);
$news = $di->getNewsGateway()->getById($newsId);
return new HttpResponse(200, 'home', ['news' => $news]);
}
}

@ -30,8 +30,25 @@ class NewsGateway
}
$news = [];
while ($data = $req->fetch()) {
$news[] = new News($data['title'], $data['content'], DateTime::createFromFormat('Y-m-d H:i:s', $data['publication_date']));
$news[] = $this->createNews($data);
}
return $news;
}
public function getById(int $id): News
{
$req = $this->pdo->prepare('SELECT * FROM news WHERE id_news=:id;');
$req->bindValue(':id', $id, PDO::PARAM_INT);
if (!$req->execute()) {
return null;
}
$data = $req->fetch();
$news = $this->createNews($data);
return $news;
}
private function createNews(array $data): News
{
return new News($data['title'], $data['content'], DateTime::createFromFormat('Y-m-d H:i:s', $data['publication_date']));
}
}

Loading…
Cancel
Save