Page 1 sur 1

class de lien

Posté : 18 mars 2008, 13:11
par x@v
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

Posté : 18 mars 2008, 13:28
par Ryle
"$this_email" est la variable "$this_email"
"$this->email" est l'attribut "email" de l'instance courrante de l'objet ;)

Posté : 18 mars 2008, 13:41
par x@v
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;

Posté : 18 mars 2008, 13:54
par Ryle
y aurait pas un p'tit loupé là :
return $this_grav->url; 
:roll:

Posté : 18 mars 2008, 17:04
par x@v
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