Une méthode magique est une méthode qui, si elle est présente dans votre
classe, sera appelée lors de tel ou tel événement. Si la méthode
n'existe pas et que l'événement est exécuté, aucun effet « spécial » ne
sera ajouté, l'événement s'exécutera normalement. Le but des méthodes
magiques est d'intercepter un événement, dire de faire ça ou ça et
retourner une valeur utile pour l'événement si besoin il y a.
la méthode __construct est magique ! Comme dit plus haut, chaque méthode magique s'exécute au moment où tel événement est lancé. L'événement qui appelle la méthode __construct est la création de l'objet.
Dans le même genre que __construct on peut citer __destruct qui, elle, sera appelée lors de la destruction de l'objet. Assez intuitif, mais voici un exemple au cas où :
la méthode __construct est magique ! Comme dit plus haut, chaque méthode magique s'exécute au moment où tel événement est lancé. L'événement qui appelle la méthode __construct est la création de l'objet.
Dans le même genre que __construct on peut citer __destruct qui, elle, sera appelée lors de la destruction de l'objet. Assez intuitif, mais voici un exemple au cas où :
<?php
class MaClasse
{
public function __construct()
{
echo 'Construction de MaClasse';
}
public function __destruct()
{
echo 'Destruction de MaClasse';
}
}
$obj = new MaClasse;
?>
Surcharger les attributs et méthodes
La surcharge d'attributs ou méthodes consiste à prévoir le cas où l'on
appelle un attribut ou méthode qui n'existe pas ou du moins, auquel on
n'a pas accès (par exemple, si un attribut ou une méthode est privé(e)).
Dans ce cas-là, on a… voyons… 6 méthodes magiques à notre disposition !
« __set » et « __get »
<?php
class MaClasse
{
private $unAttributPrive;
public function __set ($nom, $valeur)
{
echo 'Ah, on a tenté d\'assigner à l\'attribut <strong>', $nom, '</strong> la valeur <strong>', $valeur, '</strong> mais c\'est pas possible !<br />';
}
}
$obj = new MaClasse;
$obj->attribut = 'Simple test';
$obj->unAttributPrive = 'Autre simple test';
?>
Aucun commentaire:
Enregistrer un commentaire