02-09-2015, 04:45 PM
La vache, vous êtes vraiment des 'Posting Freak' ! On s'en va 3H et y'a une page en plus ^^
C'est parti :
C'est parti :
niahoo a écrit :Effectivement, plutôt qu'une interface, je ferais plutot une abstract class avec une exception dans la méthode __set.Les classes abstraites je les réserves à autre chose : le numéro de rue pourrait très bien étendre une classe abstraites Integer, avec les fonctions communes déjà implémentées, comme :
Code PHP :
<?php
abstract class ValueObjectInteger
{
private $number;
public function __construct($number)
{
if (!is_int($number))
{
throw new InvalidArgumentException('le nombre doit être un entier');
}
$this->number = $number;
}
public function __set($nom, $valeur)
{
throw new Exception('Tentative de modification du ValueObject Integer');
}
public function isEqual(ValueObjectInterface $number)
{
if (!$number instanceof $this)
return false;
return ($this->number === $number->number);
}
public function __toString()
{
return strval($this->number);
}
}
Du coup ma classe Numero serait uniquement ceci :
Code PHP :
<?php
class Numero extends ValueObjectInteger implements ValueObjectInterface
{
}