Page 1 sur 1

Utilisation d'une méthode d'une classe appelée dans une classe

Posté : 19 sept. 2015, 20:24
par berthos
Voici mon cas (que j'ai simplifié) :

Déclaration d'une classe chargée dans une autre classe :
class TATA_Class
{
	var $Id; //Identifiant 
	var $Nom; // Nom

	function __construct()
	{
		$TATA = new TATA_Class;
	}
	public function Charge()
	{
	       Chargement($this);
	}
}

class TOTO_Class
{
	var $Id; //Identifiant 
	var $TATA_Id; //id de TATA
	var $TATA; // Autre classe

	function __construct()
	{
		$TATA = new TATA_Class;
	}
	public function Charge()
	{
	       Chargement($this);
               $this->TATA->Id = $this->TATA_Id;
		$this->Table->Charge();
	}
}


Dans mon PHP, si je fais :
$TITI = new TOTO_Class;
$TITI->Charge();

Il ne trouve pas la méthode charge de TATA alors que l'objet $TATA existe bien (je peux l'afficher).

Une idée ???

Re: Utilisation d'une méthode d'une classe appelée dans une classe

Posté : 19 sept. 2015, 20:40
par or 1
<?php
class _Core{
    var $pdo="test";
    var $essai="test";
 
    function __construct(){    
        $pdo = "pdo";
        $this->essai = "pdo";
    }
}
 
$plugin = new _Core();
echo $plugin->pdo;
echo "<br>".$plugin->essai;
?>
à priori, le problème est illustré par ce code.

Re: Utilisation d'une méthode d'une classe appelée dans une classe

Posté : 19 sept. 2015, 20:44
par berthos
Désolé je ne comprends pas la réponse.
Dans mon cas, j'appelle une classe dans une classe et j'essaie d'utiliser la méthode de la classe appelée.
La réponse semble ne pas répondre du tout à la question.

Re: Utilisation d'une méthode d'une classe appelée dans une classe

Posté : 23 sept. 2015, 14:41
par Nestecha
Plusieurs soucis dans ton code.

Premièrement, déclare les propriétés de ta classe en utilisant public, private ou protected (et non var, c'est l'ancienne syntaxe).

Ensuite, ce que tu cherches à faire c'est de l'injection de dépendances. Tu veux appeler la méthode d'une classe dans une autre classe.

Dans le construct de ta class TOTO, mets un paramètre $oTATA, puis le corps de ta fonction sera $this->TATA = $oTATA.

Ensuite dans ton code final, cree un nouvel objet TATA, puis lorsque tu crées un nouvel objet TOTO, mets l'objet TATA en paramètre.

Ainsi, toutes les méthodes de TATA seront disponibles.

De plus, tu pourras utiliser d'autres classes à la place de TATA, comme TUTU ou TETE.

Re: Utilisation d'une méthode d'une classe appelée dans une classe

Posté : 23 sept. 2015, 16:02
par berthos
Merci beaucoup, ça marche impeccable !