Quelles seront les fonctionnalités de mes objets ?
« De quoi a besoin un repository pour fonctionner ? »
<?php
class Personnage
{
private $nom;
private $degats;
public function __construct($nom, $degats)
{
$this->nom = $nom;
$this->degats = $degats;
}
public function getNom()
{
return $this->nom;
}
public function getDegats()
{
return $this->degats;
}
public function setDegats($degats)
{
$this->degats = $degats;
}
}
<?php
class PersonnagesRepository
{
private $db;
public function __construct($db)
{
$this->db = $db;
}
public function create(Personnage $personnage)
{
$query = $this->db->prepare('INSERT INTO personnage (nom, degats) VALUES (:nom, :degats)');
$query->bindValue(':nom', $personnage->getNom());
$query->bindValue(':degats', $personnage->getDegats());
$query->execute();
}
public function update(Personnage $personnage)
{
$query = $this->db->prepare('UPDATE personnage SET degats = :degats WHERE nom = :nom');
$query->bindValue(':nom', $personnage->getNom());
$query->bindValue(':degats', $personnage->getDegats());
$query->execute();
}
public function delete(Personnage $personnage)
{
$query = $this->db->prepare('DELETE FROM personnage WHERE nom = :nom');
$query->bindValue(':nom', $personnage->getNom());
$query->execute();
}
public function get($nom)
{
$query = $this->db->prepare('SELECT nom, degats FROM personnage WHERE nom = :nom');
$query->bindValue(':nom', $nom);
$query->execute();
$data = $query->fetch(PDO::FETCH_ASSOC);
return new Personnage($data['nom'], $data['degats']);
}
}