Fonction __set() et __get() en PHP objet
Bonjour,
Je suis en train de monter une classe spectacle sur mon site, pour pouvoir gérer plus facilement les info relatives a un spectacle dans ma base de donnée.
Ayant 33 attributs pour définir un spectacle, j'ai commencer a pleurer en réalisant que j'allais devoir écrire déjà 66 méthodes juste avec les getter et setter ; jusqu’à que je trouve les fonctions __get() et __set().
Le seul problème est que je ne parviens pas a les appeler. Voici mon code :
Code:
1 2 3 4 5 6 7 8
|
$leSpectacle = new spectacle();
$leSpectacle->__set(m_titreSpect, $_POST['titre']);
$leSpectacle->__set(m_genreSpect, $_POST['genre']);
$leSpectacle->__set(m_dureeSpect, $_POST['duree']);
$leSpectacle->__set(m_auteurSpect, $_POST['auteur']);
$leSpectacle->__set(m_descriptionSpect, $_POST['description']); |
(Je n'ai mis que 6 attributs pour l'exemple)
et les deux méthode dans la classe spectacle :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <?php
class spectacle {
private $m_idSpect;
private $m_titreSpect;
private $m_genreSpect;
private $m_dureeSpect;
private $m_auteurSpect;
private $m_descriptionSpect;
public function __set($attr, $value){
if(isset($this->$attr)) $this->$attr = $value;
else throw new Exception('Attribut Inconnu '.$attr);
}
public function __get($attr){
if(isset($this->$attr)) return $this->$attr;
else throw new Exception('Attribut Inconnu '.$attr);
}
}
?> |
Auriez-vous une solution qui me permettrais d'avancer ?
Merci d'avance