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