Explications générales sur les Contrôleurs

Dans le contexte de l'architecture MVC, les contrôleurs jouent un rôle central en gérant la logique de l'application. Ils reçoivent les requêtes de l'utilisateur, interagissent avec les modèles pour récupérer ou manipuler les données, et renvoient les réponses appropriées. Les contrôleurs sont responsables de la coordination entre les modèles et les vues, bien que dans une API REST, les vues ne soient généralement pas utilisées de la même manière que dans une application web traditionnelle.

Explication détaillée du fichier controllers/FoodsController.php

<?php
// Inclure le fichier du modèle Food pour pouvoir utiliser ses méthodes
require_once __DIR__ . '/../models/Food.php';

// Définition de la classe FoodsController
class FoodsController {
    // Propriété privée pour stocker l'objet PDO de connexion à la base de données
    private $pdo;

    // Constructeur de la classe, appelé lors de l'instanciation de la classe
    public function __construct($pdo) {
        // Initialisation de la propriété $pdo avec la connexion à la base de données
        $this->pdo = $pdo;
    }

    // Méthode pour récupérer tous les aliments
    public function getAllFoods() {
        // Appel de la méthode statique getAll du modèle Food pour récupérer tous les aliments
        return Food::getAll($this->pdo);
    }

    // Méthode pour récupérer un aliment spécifique par son ID
    public function getFood($id) {
        // Appel de la méthode statique getById du modèle Food pour récupérer un aliment par son ID
        return Food::getById($this->pdo, $id);
    }

    // Méthode pour créer un nouvel aliment
    public function createFood($data) {
        // Appel de la méthode statique create du modèle Food pour créer un nouvel aliment
        return Food::create($this->pdo, $data['name'], $data['type'], $data['emoji']);
    }

    // Méthode pour mettre à jour un aliment existant
    public function updateFood($id, $data) {
        // Appel de la méthode statique update du modèle Food pour mettre à jour un aliment
        return Food::update($this->pdo, $id, $data['name'], $data['type'], $data['emoji']);
    }

    // Méthode pour supprimer un aliment
    public function deleteFood($id) {
        // Appel de la méthode statique delete du modèle Food pour supprimer un aliment
        return Food::delete($this->pdo, $id);
    }
}
?>

Explications supplémentaires

  • Constructeur : Le constructeur de la classe FoodsController est utilisé pour initialiser l'objet avec une connexion à la base de données. Cela permet de réutiliser cette connexion dans toutes les méthodes de la classe.

  • Méthodes du contrôleur : Chaque méthode du contrôleur correspond à une action spécifique qui peut être appelée par une route de l'API. Par exemple, getAllFoods est utilisé pour récupérer tous les aliments, tandis que getFood est utilisé pour récupérer un aliment spécifique par son ID.

  • Interaction avec le modèle : Le contrôleur utilise les méthodes du modèle Food pour effectuer des opérations sur les données. Cela permet de séparer la logique de contrôle de la logique de données, ce qui rend le code plus modulaire et plus facile à maintenir.

  • Gestion des données : Les méthodes du contrôleur reçoivent des données, généralement sous forme de tableau associatif, et les transmettent au modèle pour traitement. Cela permet de gérer les entrées de l'utilisateur et de les valider avant de les utiliser pour des opérations de base de données.

En utilisant ce contrôleur, vous pouvez gérer les requêtes HTTP entrantes, interagir avec les modèles pour effectuer des opérations sur les données, et renvoyer les réponses appropriées, ce qui est essentiel pour toute API REST.

Modifié le: samedi 7 juin 2025, 04:11