<?php

/**
 * @brief Classe mère contenant les fonctions standards de requête à la base de données
 * @note Ne peut être instanciée
 */
abstract class dao {

    ///Variable contenant l'objet de connexion à la BDD
    public $db;

    /**
     *@brief Récupère le PDO via la classe bdd
     */
    public function __construct() {
        //En cas de construction, on récupère l'objet connexion de la BDD
        $this->db = bdd::getInstance()->getPDO();
    }

    /**
     * @brief Fonction gérant la récupération d'infos
     * @note l'id est soit l'id (int) soit le login pour user
     */
    abstract function select($id);

    /// @brief Fonction gérant l'insertion d'un nouvel objet dans la BDD
    abstract function insert(&$objet);

    /// @brief Fonction gérant la suppression d'un objet dans la BDD
    abstract function delete($id);

    /// @brief Fonction gérant la mise de jour des données
    abstract function update(&$objet);
}

?>