Bonjour tout le monde,

Je réalise un site web en PHP orientée objet donc je posséde des classes, des DAO(classe d'accées aux données), des controles et des vues.

Dans mes méthodes des DAO, je souhaite utiliser le constructeur de ma classe, Voici un exemple :
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
<?php
class categorie{
 
	private $Str_code;		// Le code de la catégorie
	private $Str_libelle;	// Le libéllé de la catégorie
 
	// Constructeur
	public function categorie($c=null, $l=null){
		$this->code = $c;
		$this->libelle = $l;
	}
 
	// Methodes getteurs
	public function get_code()
	{
		return $this->Str_code; 
	}
	public function get_libelle()
	{
		return $this->Str_libelle;
	}
 
	// Methodes setteurs
	public function set_code($lecode)
	{
		$this->Str_code=$lecode;
	}	
	public function set_libelle($lelibelle)
	{
		$this->Str_libelle =$lelibelle;
	}
}
?>
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
<?php
	class DAO_Categorie
	{
	public static function ChargerTteCategorie()
		{
			$Col=new collection();//pas dans le while
 
			$req="SELECT * FROM categorie";
			//echo $req;
 
			$jeu=mysql_query($req);
			while($ligne=mysql_fetch_array($jeu))
			{
$MaCategorie = new categorie($ligne["CODECAT"], $ligne["Ca_DESIGN"]);
				$Col->add($MaCategorie);
			}
 
			return $Col->getAll();
		}
J'ai un constructeur 'C_menuNeuf' :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<?php
	$MesCategories = DAO_Categorie::ChargerTteCategorie();
	require_once("Vues/V_menuNeuf.php");
?>
Une vue 'V_menuNeuf' :
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
<ul>  <!-- Crée une liste à puces -->
	<tr>
		<th>Par les cat&eacute;gories</th>
	</tr>
	<?php 
 
		// Pour chaque tableau de catégorie
		foreach ($MesCategories as $Categorie)
		{
	?>
 
	<li><!-- 	Crée un nouvel élément pour une liste -->
		<!-- Permet d'exécuter l'action cat et de choissir la catégorie -->	
		<a href="Index.php?action=categorie&choix=<?php echo $Categorie->get_code();?> ">
			<?php echo $Categorie->get_libelle();?>
		</a>
	</li>
	<?php
	}
	?>
</ul>
Lorsque j'exécute mon site : il m'affiche 3 points, donc il voit bien qu'il y a 3 catégorie dans ma base de données MySql. Mais n'affiche pas leur nom.

Par contre si la méthode de la DAO est la suivante :
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
public static function ChargerTteCategorie()
		{
			$Col=new collection();//pas dans le while
 
			$req="SELECT * FROM categorie";
			//echo $req;
 
			$jeu=mysql_query($req);
			while($ligne=mysql_fetch_array($jeu))
			{
				$MaCategorie=new categorie();
 
				$MaCategorie->set_code($ligne["CODECAT"]);
				$MaCategorie->set_libelle($ligne["Ca_DESIGN"]);
	$Col->add($MaCategorie);
			}
 
			return $Col->getAll();
		}
là, lorsque j'exécute mon site web, j'obtien bien les noms de chaque catégorie.

Donc je me demande si en PHP orientée objet, on peut utiliser le constructeur de la classe??
Si on le peux vraiment, d'aprés vous, que dois-je faire pour régler mon problème??

Merci d'avance en espérant que vous éclairerez ma lumière car cela fais plusieurs jours que j'y réfléchi...!!