Chapitre 9Projet DevBlog

CRUD complet — Articles du blog

Create, Read, Update, Delete avec formulaires et pagination

Concepts Théoriques

CRUD signifie Create, Read, Update, Delete — les 4 opérations fondamentales sur les données. Ce chapitre les implémente complètement pour les articles de DevBlog, avec des formulaires, de la validation, et de la pagination.

Le flux d'une opération CRUD

Create (Créer) :

  1. Afficher le formulaire (GET)
  2. Traiter la soumission (POST) : valider, nettoyer, insérer en base, rediriger avec message flash

Read (Lire) :

  1. Liste paginée (articles.php?page=2)
  2. Détail par slug (article.php?slug=mon-article)

Update (Modifier) :

  1. Pré-remplir le formulaire avec les données existantes (GET)
  2. Traiter la soumission (POST) : valider, nettoyer, UPDATE en base, rediriger

Delete (Supprimer) :

  1. Confirmer la suppression (formulaire POST avec l'id)
  2. DELETE en base, rediriger avec message flash

> Important : La suppression DOIT être un POST (ou DELETE), jamais un lien GET. Un robot ou un crawler pourrait suivre un lien de suppression et supprimer tous vos articles.

La pagination

Pour afficher les articles page par page :

  1. Compter le total : SELECT COUNT(*) FROM articles WHERE published = 1
  2. Calculer le nombre de pages : ceil($total / $perPage)
  3. Récupérer la page courante : $page = max(1, (int)($_GET['page'] ?? 1))
  4. Calculer l'offset : ($page - 1) * $perPage
  5. Requête avec LIMIT et OFFSET

Le slug automatique

À la création d'un article, le slug est généré automatiquement à partir du titre avec la fonction slugify() créée au chapitre 2. Si le slug existe déjà, ajoutez un suffixe (-2, -3, etc.).