creation d'un objet basique

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : creation d'un objet basique

par Ryle » 02 avr. 2008, 17:04

Ta méthode affiche() affiche le résultat des différentes méthodes appellées, mais aucune d'elle ne retourne de résultat, du coup, en dépit du echo, rien n'apparait.

$this->openMenu() va renseigner l'attribut $this->menuBuffer (plus précisément son index 'open'). C'est lui qu'il faut faire afficher :)

De même pour les autres...

par ichiro » 02 avr. 2008, 16:26

Merci de ta réponse.
Par ailleurs, c'est pas clair du tout ce que tu fais avec ta variable $css...
Euh c'est pas faux ^^. Si j'ai bien compris la variable est déclarer comme public donc je peux la laisser dans la définitions des attributs elle sera quand même accessible pour le reste de la class.
tu peux créer une méthode pour le faire :
	public function affichage(){
	echo $this->openMenu();
	echo $this->addLink("accueil.php","accueil");
	echo $this->closeMenu();
	}

	//Construction du menu
	$menu = new menu();
	$menu->affichage();
J'ai bon ? Parce que j'ai toujours pas d'affichage :-k . Le problème peux venir d'ailleurs ?

par Ryle » 02 avr. 2008, 15:58

Peut être qu'avec un echo quelque part, ton script aurait plus de chance d'afficher quelque chose ? ;)

Tu peux créer une méthode pour le faire :
echo $this->menuBuffer['open'];
echo $this->menuBuffer['element'];
echo $this->menuBuffer['close'];
Ou bien simplement afficher les attributs à partir de ton instance $menu, ou autre... :)

Par ailleurs, c'est pas clair du tout ce que tu fais avec ta variable $css... Lorsque tu fais "$menu->openMenu($css)" elle n'est pas définie, l'attribut css de l'objet est un nom de fichier et dans la méthode openMenu() ca semble être un nom de classe... à mon avis y a des choses à revoir de ce côté là :)

creation d'un objet basique

par ichiro » 02 avr. 2008, 15:29

Bonjour a tous, je me met depuis très (très) peu à php5 car à ce que j'entends c'est vraiment mieux :)
J'ai essayé de créer un objet le plus basic possible -> un menu tout simple. J'ai essayé de suivre la méthode que j'ai vu dans plusieurs tuto mais la logique est encore un peu confuse pour moi.

Le souci c'est que ben rien ne s'affiche à l'écran :oops: . J'ai entendu parler de la méthode __toString () pour l'affichage mais je pense pas encore savoir l'utiliser correctement. Merci d'éclairer ma lanterne :roll:
<?php
class menu
{

	//definition des attributs
	public $css = "menu.css";
	private $menuBuffer = array();
	
	//constructeur
	public function __construct(){
	
	}
	
	//methodes
	public function openMenu($css)
	{
	$this->menuBuffer['open'] = '<ul class='.$css.'>';
	}
	
	public function closeMenu()
	{
	$this->menuBuffer['close'] = '</ul>';
	}
	
	public function addLink($link,$label)
	{
	$tmpelem = '<li><a href='.$link.'>'.$label.'</a></li>';
	$this->menuBuffer['element'] = $tmpelem;
	}
	
}//fin de la class	
	
	//Construction du menu
	$menu = new menu();
	$menu->openMenu($css);
	$menu->addLink("accueil.php","accueil");
	$menu->closeMenu();
?>