comment se connecté lorsqu'on est dans une class heritage
Bonjour je souhaite me connecté à pour entrée une donnée mais je n'y arrive pas, voici le script singleton qui permet de se connecté via pdo:
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 25 26 27 28 29 30 31 32 33 34 35 36 37
|
<?php
class Patron
{
private static $instance;
protected $connexion;
private function __construct() {
/* création d'un objet PDO avec les constantes définies dans la configuration */
$this->connexion = new PDO('mysql:host=localhost;dbname=labase', 'root', '');
/* mettre Exception comme mode d'erreur */
$this->connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
/* clonage impossible */
private function __clone() {}
/**
* Accéder à l'UNIQUE instance de la classe
*/
static public function getInstance() {
if (! (self::$instance instanceof self)) {
self::$instance = new self();
}
return self::$instance;
}
/**
* Accesseur de la connexion
*/
public function OpenCnx() {
return $this->connexion;
}
}
?> |
j'ai 2 class :
class saisie():
elle sert a récolter les saisies d'une personne qui saisie nom et adresse
class enregistre()
elle vérifie que les saisies son correcte (exemple qu'il ya bien 10 chiffre pour le numéro de telephone)
la class enregistre() héritera de la class saisie, il faut que la class enregistre puisse vérifier les attribut de la class saisie.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
class Enregistre extends Saisie
{
public function verifier()
{
//vérifie que les attribut on été bien saisie
}
public function save()
{
//enregistrement de tous les attribut qui sont dans la class saisie
}
}
$saisie1=new Saisie($_POST['nom'],$_POST['adresse'],...);
$enregistre=new Enregistre();//on transmet tous les poste dans les attribut de cette classe
$enregistre->verifier();//on vérifie que les donnée son ok
$enregistre->save();//on enregistre le résultat dans la bdd |
pour utliser la connection il faut faire appelle à :
Code:
1 2
|
$bdd = Patron::getInstance()->OpenCnx(); |
Dans la class enregistre si je crée une methode de connection de la class j'ai cette erreur;
Code:
1 2
|
Fatal error: Call to private Patron::__construct() from invalid context in /var/www/xxtest/test.php on line 41 |
comment faut t'il que je procède si je veux me connecter avec "une sous class"??
voici le scipt qui fait cette erreur:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
class frere extends fille
{
public function enregistre()
{
$bdd = Cnx::getInstance()->OpenCnx();
// enregistrement de la personne
$sql_perso="INSERT INTO Clients (ID_client,nom) VALUES ('','222')";
$nb=$bdd->exec($sql_perso);
$this->endID= $bdd->lastInsertId();
$bdd=null;
}
}
$enregister= new enregistre(); |
il y a peut être une autre facon de le faire?
voici un petit dessin pour illustrer mes class les flèches c'est lhéritage
http://www.hostingpics.net/viewer.php?id=824048pdo.jpg