Page 1 sur 1
Objet -- constructeur
Posté : 09 janv. 2020, 17:36
par dooki
Bonjour à vous,
Je tente depuis un moment de passer mon site de procédurale (il me semble) à objet,
j'ai tenté de réalisé une classe panier :
Code : Tout sélectionner
class DB{
fct __construct pour se connecter à la base;
}
class Panier {
private $DB;
public function __construct($DB){
if(!isset($_SESSION)){
session_start();
}
if(!isset($_SESSION['panier'])){
$_SESSION['panier'] = array();
}
$this->DB = $DB;
}
Est-il possible dans ma classe Panier de faire appel à mon constructeur de la classe DB ?
public fonction __construct(Constructeur DB) en paramètre
Re: Objet -- constructeur
Posté : 09 janv. 2020, 17:46
par dooki
j'ai oublié de préciser que dans ma vue panier je faisais un :
$pan = new Panier($DB);
Re: Objet -- constructeur
Posté : 09 janv. 2020, 18:00
par dooki
Enfaite j'ai plusieurs fonctions qui utlisent du code avec un besoin de connexion à la classe DB ( qui elle se connecte à la BDD), et je cherche un moyen de le faire :
- Faut il que j'instancie avec $var=new DB(); dans chaque fction ?
- Que je créer une variable public qui prenne la valeur de la classe DB pour pouvoir l'appellée ( impossible , il me semble)
- ??
Re: Objet -- constructeur
Posté : 09 janv. 2020, 18:26
par dooki
J'ai réussi en essayant plein de petits trucs, désolé du dérangement ^^
( et des multi posts )
Mais il faut l'avoue ca fait du bien d'écrire son problème, ça m'a permit de mieux réfléchir aux solutions possibles !
La prochaine fois, j'ouvre un bloc note et j'évite de polluer le forum, bisous !
Re: Objet -- constructeur
Posté : 09 janv. 2020, 18:34
par or 1
et quelle est cette solution ? car ce n'est pas forcément la meilleure pour respecter l'esprit de la programmation objet.
Re: Objet -- constructeur
Posté : 09 janv. 2020, 23:41
par dooki
Code : Tout sélectionner
require '../3-Modele/Class.php';
$DB = new DB();
$pan = new Panier($DB);
$produits = $pan->voirPanier();
J'ai mis ce code au début de ma page vue,
En testant la page vue sans rien, en appellant la classe, il n'y avait pas d'erreurs, le problème venait donc de la page vue, j'essayais d'appeller la variable $DB sans avoir fait le $DB = new DB(); ducoup quand je faisais un : $pan = new Panier($DB);
Il a pu reconnaitre la variable $DB