IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[POO][MVC] Héritage d'un modele


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 15
    Points : 13
    Points
    13
    Par défaut [POO][MVC] Héritage d'un modele
    Bonjour,

    Tout d'abord je tiens à signaler que je débute dans la programmation POO ainsi qu'avec le modèle MVC.

    Voila je me suis lancé dans la création d'un site Internet sur le modèle MVC et j'ai pu constater que tous mes modèles (classes) font appel à PDO2 qui est une classe héritant de PDO afin d'avoir qu'une seule connection quoi qu'il arrive (Je crois que sa s'appelle Singleton).

    J'aimerais donc faire une class Modèles qui sera hérité par tous mes modèles afin de pouvoir utiliser librement mont objet db qui est une instance de PDO2 comme l'exemple ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    class Entreprises extends Modeles
    {
     
    	function readAllEntreprises()
    	{
    		$res = $db->prepare("SELECT * FROM entreprise");
    		$res->execute();
     
    		return $results = $res->FetchAll();
    	}
     
    	function readEntreprise($id)
    	{
    	}
     
    	function createEntreprise($info = array())
    	{
    	}
     
    	function updateEntreprise ($info = array())
    	{
    	}
     
    	function deleteEntreprise ($id)
    	{
    	}
    }
    Voici ma classe PDO 2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    class PDO2 extends PDO {
     
    	private static $_instance;
     
    	/* Constructeur : héritage public obligatoire par héritage de PDO */
    	public function __construct( ) {
     
    	}
    	// End of PDO2::__construct() */
     
    	/* Singleton */
    	public static function getInstance() {
     
    		if (!isset(self::$_instance)) {
     
    			try {
     
    				self::$_instance = new PDO(SQL_DSN, SQL_USERNAME, SQL_PASSWORD);
     
    			} catch (PDOException $e) {
     
    				echo $e;
    			}
    		} 
    		return self::$_instance; 
    	}
    	// End of PDO2::getInstance() */
    }
    Et voici ma classe modeles dont je ne sais comment la programmer, j'ai tenter quelquechose comme ça mais sans fort succès :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    abstract class Modeles
    {
    	public  $db ;
     
    	public function __construct()
    	{
    		$this->db = PDO2::getInstance();
    		return $this->db;
    	}
     
    }
    Merci pour votre aide

  2. #2
    Membre averti Avatar de BornBanane
    Homme Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 284
    Points : 416
    Points
    416
    Par défaut
    Il faut que tu utilises $this->db et non pas $db. $db correspond à une variable locale à la fonction, $this->db correspond au membre $db de la classe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class Entreprises extends Modeles
    {
     
    	function readAllEntreprises()
    	{
    		$res = $this->db->prepare("SELECT * FROM entreprise");
    		$res->execute();
     
    		return $results = $res->FetchAll();
    	}
    ...

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    OOOhhh que je suis con

    Merci pour ton aide je pense que je serais resté quelques heures à cause de ce petit this.

  4. #4
    Membre averti Avatar de BornBanane
    Homme Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 284
    Points : 416
    Points
    416
    Par défaut
    Bon courage pour la suite.

    Ces erreurs la arrivent à tout le monde ! Et dieu sait que ca fait perdre du temps .

  5. #5
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 230
    Points
    20 230
    Par défaut
    Par définition une classe abstraite ne peut être instancier. Lui mettre un constructeur ne me semble donc pas très judicieux

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [POO] Technique de Multilingue Pour Modele MVC
    Par satyre dans le forum Langage
    Réponses: 2
    Dernier message: 31/10/2008, 11h27
  2. [POO] VB6 --> héritage
    Par tigrou2405 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 31/08/2007, 20h29
  3. [POO] MVC : Gestion des "pages"
    Par Dinan dans le forum Langage
    Réponses: 4
    Dernier message: 18/02/2007, 19h44
  4. [POO] MVC : Vue composée
    Par Neuromancien2 dans le forum Langage
    Réponses: 3
    Dernier message: 18/02/2007, 10h38
  5. [POO] Problème héritage des classes PHP4
    Par zana74 dans le forum Langage
    Réponses: 2
    Dernier message: 15/08/2006, 16h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo