class de lien

x@v
Mammouth du PHP | 570 Messages

18 mars 2008, 13:11

J'ai un classe qui dit simplement mafficher un lien avec les paramètres passer dans le constructeur mais elle ne m'affiche que l'email en md5(); ?

Code : Tout sélectionner

http://www.gravatar.com/avatar.php? gravatar_id=d41d8cd98f00b204e9800998ecf8427e&default=&size=
<?php
class Gravatar
{
	private $email=NULL;
	private $img=NULL;
	private $size=0;
	private $grav_url=NULL;

	function __construct($email, $img, $size)
	{
		$this_email=$email;
		$this_img=$img;
		$this_size=$size;
	}

	public function setGravatar()
	{
		$this_grav_url = 'http://www.gravatar.com/avatar.php?
		gravatar_id='.md5($this_email).'&default='.urlencode($this_img).
		'&size='.$this_size;
		return $this_grav_url;
	}
}
$gravatar=new Gravatar('[email protected]', 'http://www.somewhere.com/homestar.jpg', 40);
echo $gravatar->setGravatar();
?>
Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

18 mars 2008, 13:28

"$this_email" est la variable "$this_email"
"$this->email" est l'attribut "email" de l'instance courrante de l'objet ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

x@v
Mammouth du PHP | 570 Messages

18 mars 2008, 13:41

oui mais avec les attributs plus rien ne s'affiche ?
<?php
class Gravatar
{
	private $email=NULL;
	private $img=NULL;
	private $size=0;
	private $grav_url=NULL;

	function __construct($email, $img, $size)
	{
		$this->email=$email;
		$this->img=$img;
		$this->size=$size;
	}

	public function setGravatar()
	{
		$this->grav_url = 'http://www.gravatar.com/avatar.php?
		gravatar_id='.md5($this->email).'&default='.urlencode($this->img).
		'&size='.$this->size;
		return $this_grav->url;
	}
}
$gravatar=new Gravatar('[email protected]', 'http://www.somewhere.com/homestar.jpg', 40);
echo $gravatar->setGravatar();
?>
EDIT
return $this->grav_url;
Modifié en dernier par x@v le 18 mars 2008, 13:55, modifié 1 fois.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

18 mars 2008, 13:54

y aurait pas un p'tit loupé là :
return $this_grav->url; 
:roll:
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

x@v
Mammouth du PHP | 570 Messages

18 mars 2008, 17:04

ce qui donne avec accesseur.

Code : Tout sélectionner

<?php class Gravatar { private $email=NULL; private $img=NULL; private $size=0; private $grav_url=NULL; function __construct($email, $img, $size) { $this->email=$email; $this->img=$img; $this->size=$size; } public function setGravatar($lien) { $this->grav_url = $lien.'? gravatar_id='.md5($this->email).'&default='.urlencode($this->img). '&size='.$this->size; //return $this->grav_url; } public function getGravatar() { return $this->grav_url; } } $gravatar=new Gravatar('[email protected]', 'http://www.somewhere.com/homestar.jpg', 40); $gravatar->setGravatar('http://www.gravatar.com/avatar.php'); echo $gravatar->getGravatar(); ?>
On ma envoyé un email pour un recrutement ?
Test

Implémenter une classe PHP 'gravatar' conforme aux instructions disponibles ici:
http://en.gravatar.com/site/implement#section_3_1

Cette classe doit être une boîte noire, et n'a pas besoin de connaître quoi que ce soit de la situation avec laquelle elle doit fonctionner. Elle doit initialiser l'ensemble des propriétés nécessaires à son fonctionnement à des valeurs 'logiques' de départ, tout en permettant de fixer [et de valider] ces paramètres individuellement.

Il est aussi demandé de préparer du code [test suite] pour tester et valider le fonctionnement de cette classe.

Si ces instructions ne sont pas claires, prenez les décisions pour vous-même qui vous semble les plus judicieuses.
Il y'en a qui s'amuse mais moi j'ai pondu ça en 4ème