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] Problèmes de classes


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif

    Inscrit en
    Août 2005
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 401
    Par défaut [POO] Problèmes de classes
    Bonjour à vous,

    j'espère que vous avez passé un agréable dimanche ensoleillé car moi j'ai passé toute ma journée à essayer de résoudre un problème.

    Alors j'ai 3 classes et je tente de les faire avec le modèle MVC:

    Classe DataBaseModel:
    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
    <?php
     
     
    class DataBaseModel {
     
    	var $dataBase_model;
     
    	function DataBaseModel($dataBase_model) {
    		$this->dataBase_model=$dataBase_model;
    	}
     
    	function connexion() {
    		$connexion = mysql_connect($this->dataBase_model->host, $this->dataBase_model->user, $this->dataBase_model->password);
    	}
     
    	function close_mysql() {
    		mysql_close();
    	}
     
    }
     
    ?>
    Classe ConfigDataBase:

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    class ConfigDataBase {
    	var $host;
    	var $user;
    	var $password;
    	var $databaseName;
     
    	/*
    	*Constructeur de ConfigDataBase
    	*Entrées: @domaine,@Nom_Utilisateur,@Mot_de_Passe,@Nom_Base_Courante
    	*Traitement: Construit l'objet de configuration de mysql
    	*Sortie: Objet de type ConfigDataBase	
    	*/
    	function ConfigDataBase($host,$user,$password,$databaseName) {
    		$this->host=$host;
    		$this->user=$user;
    		$this->password=$password;
    		$this->databaseName=$databaseName;
    	}
     
    	/*
    	*Méthode verifConnect()
    	*Entrées: Aucune
    	*Traitement: Vérifie si on arrive à se connecter au serveur MySQL
    	*Sortie: Soulève une execption si il y a une erreur
    	*/
    	function verifConnect() {
    		$dataBase=new ConfigDataBase();
     
    		$connexion = mysql_connect($this->host, $this->user, $this->password)
       		or die("ERREUR: Impossible de se connecter: V&eacute;rifier identifiant, mot de passe et le domaine.");
    		echo 'OK: Connexion r&eacute;ussie';
    		mysql_close($connexion);
    	}
     
    	/*
    	*Constructeur de ConfigDataBase
    	*Entrées: Aucune
    	*Traitement: Vérifie si on arrive à se connecter au serveur MySQL
    	*Sortie: Soulève une execption si il y a une erreur
    	*/
    	function verifDataBaseName() {
    		$dataBase=new ConfigDataBase();
     
    		$connexion = mysql_connect($this->host, $this->user, $this->password)
    		or die("ERREUR: Impossible de se connecter: V&eacute;rifier identifiant, mot de passe et le domaine.");
     
    		mysql_select_db($this->databaseName,$connexion)  or die('ERREUR: Le nom de la base n\'existe pas'); 
     
    		mysql_close($connexion);
    	}
     
    }
    Classe DatabaseController:
    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
    <?php
    require('ConfigDataBase.php');
    require('DataBaseModel.php');
     
    class DatabaseControler {
     
    	function DatabaseControler() {
    		$configDB=new ConfigDataBase("localhost","*****","*****","*****");
     
    		$db=new DataBaseModel($configDB);
    	}
     
     
    }
     
    $contdb=new DatabaseControler();
    $contdb->verifConnect();
     
     
    ?>
    Mon problème dans la classe DatabaseController. en effet mon constructeur construit les 2 objets ConfigDataBase et DataBaseModel.
    Mais quand je fais ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $contdb=new DatabaseControler();
    $contdb->verifConnect();
    j'ai une magnifique erreur:
    Fatal error: Call to undefined method DatabaseControler::verifConnect() in /var/www/es4/akro/database/DatabaseControler.php on line 17

    Oui je pense que c'est normal qu'il y est cette erreur mais je suis fatigué donc je fais appel à vous pour m'aider un petit peu.

    Merci a tous Bonne fin de journée

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 41
    Par défaut
    Bonjour,
    Il faut que tu déclares un attribut dans ta classe ainsi :
    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
    <?php
    require('ConfigDataBase.php');
    require('DataBaseModel.php');
     
    class DatabaseControler {
     public $configDB;
    	function DatabaseControler() {
    		this->configDB=new ConfigDataBase("localhost","root","make007","aimervalentigney");
     
    		$db=new DataBaseModel($configDB);
    	}
     
     
    }
     
    $contdb=new DatabaseControler();
    $contdb->configDB->verifConnect();
     
     
    ?>
    Si tu veux, c'est la propriété configDB qui est de type ConfigDatabase donc c'est sur lui seulement que tu peux faire le VerifConnect..

  3. #3
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Par défaut
    C'est tout à fait normal, tu appelles cette méthode sur le mauvais objet. Mais je ne vois pas trop ce que tu attends de nous ?
    Blog - Mon espace developpez -
    Oracle Certified Professional, Java SE 6 Programmer
    eZ Publish Certified developer

  4. #4
    Membre très actif

    Inscrit en
    Août 2005
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 401
    Par défaut
    merci à vous !

    MKITONE à très bien expliqué merci

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

Discussions similaires

  1. [POO] Problème de classes et héritage
    Par Kabanon dans le forum Langage
    Réponses: 1
    Dernier message: 25/10/2007, 12h37
  2. [POO] Problème de classe : Variables empty ?
    Par Steph_SOUMIER dans le forum Langage
    Réponses: 8
    Dernier message: 30/01/2007, 11h52
  3. [POO] Problème héritage des classes PHP4
    Par zana74 dans le forum Langage
    Réponses: 2
    Dernier message: 15/08/2006, 16h00
  4. Réponses: 8
    Dernier message: 29/06/2006, 14h54
  5. [POO] Problème avec l'utilisation de classes.
    Par sekiryou dans le forum Langage
    Réponses: 3
    Dernier message: 16/02/2006, 18h54

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