Méthodes Magiques
Les méthodes magiques sont des méthodes qui sont appelées suite à un événement particulier (construction, destruction, clonage...).
Si la méthode n'est pas implémentée dans votre classe, l'action par défaut sera effectuée.
Les méthodes magiques commencent par un double souligné bas (__).
Définition : __construct, __destruct
Ces méthodes permettent de réaliser des actions à la construction ou à la destruction d'un objet.
Définition : __call, __callStatic
La méthode __call est appelée lorsque vous utilisez une méthode qui n'existe pas.
Dans ce cas vous pouvez ajouter un contenu alternatif :
public function __call($methode, $arg)
{
echo "la méthode $methode n'existe pas";
}
__callStatic concerne l'appel à une méthode static.
Définition : __get, __set
Ces méthodes sont appelées lorsque vous tentez d'accéder à une propriété inaccessible ou inexistante.
On pourrait utiliser ce mécanisme pour retourner une erreur ou simuler un système de getter et setter sur des propriétés protégées :
public function __set($name, $value)
{
$this->$name = $value;
}
public function __get($name)
{
return $this->$name;
}
Définition : __toString
Cette méthode est appelée lorsque vous utilisez votre objet comme s'il était une String.
public function __toString()
{
return "Je suis un objet";
}
...
echo $monObjet; // affiche "Je suis un objet"
Définition : __invoke
Cette méthode est appelée lorsque vous tentez d'utiliser votre objet comme une fonction.
public function __invoke($arg)
{
echo "Je suis un objet pas une fonction";
}
...
$monObjet(); // affiche : "Je suis un objet pas une fonction"
Définition : __isset, __unset, __debugInfo, __clone
Ces méthodes sont appelées lorsque vous tentez d'utiliser les fonctions isset(), unset(), var_dump() ou le mot clef clone.