Easy-Micro

LANGAGE Intro POO PHP
CRUD 1

Introduction à la programmation orientée objet en PHP

Les fonctionnalités d'un manager

Un objet gérant des entités issues d'une BDD est généralement appelé un "manager". Comme un manager ne fonctionne pas sans support de stockage (dans notre cas, une BDD), on va prendre un exemple concret en créant un gestionnaire pour nos personnages, qui va donc se charger d'en ajouter, d'en modifier, d'en supprimer et d'en récupérer.

Pour pouvoir gérer au mieux des entités présentes en BDD (ici, nos abonnés), il va falloir quelques fonctionnalités de base. Quelles sont-elles ? Un manager doit pouvoir :
  • Enregistrer une nouvelle instance
  • Sélectionner une instance
  • Modifier une instance
  • Supprimer une instance
C'est le fameux CRUD (Create, Read, Update, Delete)

Le fichier index.php
<!DOCTYPE html>
<html  lang="fr">
<head>
<title>POO PHP</title>
<meta charset="utf-8">
<link rel="stylesheet" href="css/mesStyles.css">
</head>
<body>
<h1>Inscription</h1>
<?php
     require 'classes/utilisateur.class.php';
     require 'classes/admin.class.php';
     require 'classes/abonne.class.php';
     require 'config/login.php';
     require 'classes/manager.class.php';

     //$bdd est une instance de PDO (voir dans le fichier login.php)

     $Manager = new Manager($bdd); 
     $Manager -> createInscrits('Papy33', 123, 'Sud');
     $Manager -> readInscrits();
    
?>
</body>
</html>

Le fichier classes/manager.class.php
<?php
class Manager {
    private $_db; // Instance de PDO

    public function __construct($bdd) {
        $this->setDb($bdd);
      }

      public function setDb($bdd) {
        $this->_db = $bdd;
      }

    // ⚠ Méthode non sécurisée : voir chapitre suivant
    public function createInscrits($nom, $pass, $region) {
        $requete = 'INSERT INTO inscrits(id_inscrits, nom_inscrits, pass_inscrits, region_inscrits) 
        VALUES(null,"'.$nom.'","'.$pass.'","'.$region.'")';
        $resultat = $this -> _db -> prepare($requete);
        $resultat -> execute();
    }

    public function readInscrits() {
        $requete = 'SELECT id_inscrits, nom_inscrits FROM inscrits ORDER BY id_inscrits DESC';
        $resultat = $this -> _db -> query($requete);
        echo '<ul>';
        while($ligne= $resultat->fetch(PDO::FETCH_ASSOC)){
            echo '<li>N° '.$ligne['id_inscrits'].' : '.ucfirst($ligne['nom_inscrits']).'</li>';
        }
        echo '</ul>';
    }

    public function updateInscrits($new_nom, $id) {
        $requete = "UPDATE inscrits SET nom_inscrits = '".$new_nom."' WHERE id_inscrits='".$id."'";
        $resultat = $this -> _db -> prepare($requete);
        $resultat -> execute();
    }
      
    public function deleteInscrits($id) {
        $requete = 'DELETE FROM inscrits WHERE id_inscrits ='.$id;
        $this -> _db -> query($requete);
    }
}
⚠ A noter que l'exemple ci-dessus est loin d'être parfait au niveau sécurité... Cette question est abordée dans le chapitre suivant.

Flux RSS Easy-Micro - Abonnez-vous Easy-Micro [ François Bisch ]