J'essaie de faire un petit CMS pour m'amuser, mais je suis en train de prendre du recul sur la sémantique avec la POO. J'ai une classe de base de données de base et puis j'ai une classe d'administrateur. La classe admin doit faire des requêtes de base de données, donc ce que j'ai fait c'est que la classe admin étende la classe db et passe ensuite le lien à la ressource db via construct. Mon code ressemble à ceci:Comment passer un lien de base de données MySQL à une classe en PHP?
class admin extends mysql {
function __construct($link) {
$this->link = $link; //$this->link is in the mysql class
}
}
$db = new mysql($host,$user,$pass,$name);
$admin = new admin($db->link);
Je sais qu'il devrait y avoir une méthode plus facile à cela sans extension de la classe db (que je suppose appels une toute nouvelle instance de celui-ci). Un ami m'a dit de passer tout l'objet $ db à la classe d'administration et y stocker comme ceci:
class admin {
var $db;
function __construct($db) {
$this->db = $db;
}
}
$db = new mysql($host,$user,$pass,$name);
$admin = new admin($db);
Est-ce la bonne façon de faire les choses? Existe-t-il un moyen plus simple de référencer le lien db s'il a déjà été établi?