Bonjour bonjour
mon premier post , vi habituellement je trouve en cherchant ou dans des tutoriels, mais là la question que je me pose est un peu floue pour une recherche ( j'ai tenté quand même )... Et il est probable que la réponse tienne en deux lignes, donc je poste.
Je cherche à écrire une classe pour intéragir avec une bdd mysql mais de façon la plus simple possible ( et d'une façon très adaptée à mon problème, je m'en fou pas mal si je limite les possibilités d'origine ). Au départ, j'ai fait hériter ma classe de la classe mysqli. Seul pépin, je voulais que le constructeur de ma classe aille chercher toute seule lors de l'instanciation le server/user/pwd/base dans des variables globales. Naïvement pour moi çà donnait :
Evidemment, çà ne marche pas, je suppose que le constructeur ne recoive pas en paramètres les variables qu'on utilise en faisant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 class bddConnection extends mysqli { function __construct() { parent::__construct($GLOBALS['sqlServer'], $GLOBALS['sqlUser'], $GLOBALS['sqlPwd'], $GLOBALS['sqlBase']); } }
Comment ces paramètres sont transmis alors ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part $aga = new mysqli($tralala, $pouet, etc... );
Comme solution, à la place de l'héritage, j'ai pensé à une instanciation de mysqli DANS l'instance de ma classe perso :
Suis-je obligé de faire comme cela ou c'est juste que je m'y prend mal pour mon héritage ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 class bddConnection { private $tralala; // ou public, pas le pb function __construct() { $this->tralala = new mysqli($GLOBALS['sqlServer'], $GLOBALS['sqlUser'], $GLOBALS['sqlPwd'], $GLOBALS['sqlBase']); } }
Autre chose me perturbe : imaginons que l'on veuille hériter d'une classe, mais faire de toutes les méthodes & propriétés de cette classe des méthodes & propriétés privées dans la sous-classe. Il me semble que c'est possible dans d'autres langage ( mais en php ??? ). Mais quel est l'intérêt par rapport à ma "solution" juste au-dessus ? Je me doute qu'il y en a un, mais a priori je ne vois pas... Même au niveau de la gestion en mémoire, pas de gros avantage pour l'héritage a priori non ?
Je commence complètement en prog objet, mes connaissances se limitent à quelques lectures, alors si les réponses à mes questions se trouvent dans quelque chose que j'aurais dû lire, et que le post est inutil, désolé, mea culpa, merci de m'indiquer ce qu'il me reste à lire .
J'espère avoir été clair, merci pour ceux qui auront suivi jusqu'au bout...
Partager