Tp 3 php functions utils blogpoo
Thème :
Junior
1 vues ·7/10 leçons06 - Utilisation dans l’Accueil et l’Affichage
Dans ce document, nous allons voir comment les fonctions utilitaires sont appelées dans les pages publiques du blog : l’index (liste des articles) et la page de lecture d’un article.
1. Page d’accueil (index.php)
Le Code Complet
<?php
declare(strict_types=1);
session_start();
require_once 'database/database.php';
require_once 'flash.php';
require_once 'app/helpers.php';
// 1. Récupération du total pour la pagination
$totalItems = countArticles();
$itemsPerPage = 12;
$currentPage = (int)($_GET['page'] ?? 1);
$totalPages = (int)ceil($totalItems / $itemsPerPage);
// 2. Calcul du décalage (offset)
$offset = ($currentPage - 1) * $itemsPerPage;
// 3. Récupération des articles paginés
$articles = findAllArticles($itemsPerPage, $offset);
render('blog/index', [
'pageTitle' => 'Notre blog d\'accueil',
'articles' => $articles,
'currentPage' => $currentPage,
'totalPages' => $totalPages
], 'blog-layout');
Explications détaillées
countArticles(): Au lieu d’écrire une requêteSELECT COUNT(*), on appelle cette fonction. Elle nous retourne directement un entier. C’est propre et réutilisable.findAllArticles($limit, $offset): C’est le cœur de la page. On lui passe le nombre d’articles par page (12) et le point de départ ($offset). La fonction s’occupe de toute la complexité SQL (jointures, tris, limites).- L’objet
$articles: La variable$articlescontient maintenant un tableau propre que l’on passe directement à la vuerender().
2. Page Article (user-article-show.php)
Le Code Complet (Extrait)
// ... initialisation ...
$article_id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);
// 1. Récupération de l'article seul
$article = findArticle((int) $article_id);
// 2. Récupération des commentaires de cet article
$commentaires = findCommentsByArticle((int) $article_id);
// 3. Récupération des statistiques globales
$usersCount = countUsers();
$commentsCount = countComments();
$articlesCount = countArticles();
// 4. Récupération des derniers articles pour la sidebar
$latestArticles = findAllArticles(5, 0);
render('blog/user-article-show', [
// ... passage des variables ...
], 'blog-layout');
Explications détaillées
findArticle($id): On récupère toutes les colonnes d’un article précis. Plus besoin deprepareoufetchici, la fonction nous renvoie soit le tableau de l’article, soitfalses’il n’existe pas.findCommentsByArticle($id): Cette fonction est magique car elle nous renvoie non seulement les commentaires, mais elle fait aussi la jointure avec la tableuserspour nous donner le pseudo de chaque auteur.- Les fonctions de compte (
countUsers, etc.) : On les utilise pour remplir le bloc “Statistiques” de la barre latérale. C’est beaucoup plus lisible que d’avoir 4 requêtes SQL à la suite. findAllArticles(5, 0): On réutilise la même fonction que pour l’accueil, mais cette fois on demande seulement les 5 derniers articles (offset 0) pour l’affichage “Derniers articles” dans la sidebar.
Prêt à passer à la suite ?
Vous avez terminé cette leçon sur 06 - Utilisation dans l'Accueil et l'Affichage. Continuez votre apprentissage avec la prochaine leçon ou explorez d'autres formations.